WCF Error : Manual addressing is enabled on this factory, so all messages sent must be pre-addressed

后端 未结 4 661
臣服心动
臣服心动 2021-01-01 08:33

I\'ve got a hosted WCF service that I created a custom factory for, so that this would work with multiple host headers:

/// 
/// Required for          


        
相关标签:
4条回答
  • 2021-01-01 09:16

    So this has finally come to an end!

    Brian - thanks for your guidance on this. The bindings were mis-aligned b/t the client and server, and I finally ended up going with the following in both:

      <basicHttpBinding>
        <binding name="TransportSecurity">
          <security mode="Transport">
            <transport clientCredentialType="None"/>
          </security>
        </binding>
      </basicHttpBinding> 
    

    ... and setting their endpoint binding and bindingConfiguration attributes accordingly:

       <endpoint binding="basicHttpBinding" 
                 bindingConfiguration="TransportSecurity"
                 contract="ServiceReference1.IService" 
                 name="WebHttpBinding_IService" 
                 address="https://mysslserver.com/Service.svc" />
    

    Since this is relatively new turf for me, just the explanation of why those errors were popping up lead me in the right direction :).

    0 讨论(0)
  • 2021-01-01 09:19

    I experienced this error and the problem was resolved by adding the WebHttpBehavior (line 2 below):

    var factory = new ChannelFactory<IService>(new WebHttpBinding(), uri);
    factory.Endpoint.Behaviors.Add(new WebHttpBehavior());
    var proxy = factory.CreateChannel();
    
    0 讨论(0)
  • 2021-01-01 09:22

    I added a service reference as usual and got this error. Turns out all I had to do was to amend the client config to use an endpoint config with a behaviour specifing webhttp

    <client>
      <endpoint address="http://localhost:9000/GeoConverterService/GeoConverterService.svc"
                binding="webHttpBinding" 
                contract="GeoConverter.IGeoConverterService" 
                behaviorConfiguration="webhttp"/>
    </client>
    
    <behaviors>
      <endpointBehaviors>
        <behavior name="webhttp">
          <webHttp/>
        </behavior>
      </endpointBehaviors>
    </behaviors>
    

    0 讨论(0)
  • 2021-01-01 09:29

    I don't think this necessarily has anything to do with your factory.

    See

    http://msdn.microsoft.com/en-us/library/system.servicemodel.channels.transportbindingelement.manualaddressing.aspx

    or others among the first few Bing hits for "manualaddressing". It sounds like the binding being used is incompatible with some other portion of the stack/messaging logic.

    0 讨论(0)
提交回复
热议问题