【问题标题】:WCF customBinding is BasicHTTPBinding when adding service reference添加服务引用时 WCF customBinding 是 BasicHTTPBinding
【发布时间】:2012-01-23 01:08:18
【问题描述】:

我有一个带有 customBinding 端点的 WCF 服务。

<customBinding>
    <binding name="customBinding" receiveTimeout="00:10:00" sendTimeout="00:10:00" openTimeout="00:10:00" closeTimeout="00:10:00">
      <binaryMessageEncoding>
        <readerQuotas maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxDepth="2147483647" maxNameTableCharCount="2147483647" maxStringContentLength="2147483647" />
      </binaryMessageEncoding>
      <httpTransport maxReceivedMessageSize="40194304" />
    </binding>
  </customBinding>     

我的服务是:

<services>
  <service  name="Test2">
     <endpoint address="" binding="customBinding" bindingConfiguration="customBinding" contract="MyServiceContract.ContractInterface">
    </endpoint>
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
  </service>
</services>

但是,在我的客户端应用程序中,每当我添加服务引用时,生成的引用都是 BasicHTTPBinding(在 app.config 中)

我可以做些什么来“强制”客户端使用自定义绑定?

谢谢 亚历克斯

【问题讨论】:

    标签: wcf


    【解决方案1】:

    服务未使用您指定的绑定。我的猜测是服务名称实际上是“MyServiceContract.Test2”(或类似名称)而不仅仅是“Test2”,所以当 WCF 没有找到任何与服务类匹配的 &lt;service&gt; 元素时,它只是使用了默认端点,恰好使用basicHttpBinding

    【讨论】:

      【解决方案2】:

      您是否为自定义绑定定义了一个类(派生自 System.ServiceModel.Channels.Binding 的类)?

      如果是这样,您是否将新绑定添加到配置绑定扩展中?

      <extensions>
        <bindingExtensions>
          <add name="myCustomeBinding" type="MyCustomeBinding, MyCustomeBindingLibrary" />
        </bindingExtensions>
      </extensions>
      

      绑定的工作是定义创建 WCF 通道的“配方”。基本上,配方由一系列绑定元素组成。

      您在配方中选择的绑定元素决定了 WCF 通道将实现的通信的性质。

      您的绑定元素配方至少需要包括:

      • 消息编码(文本/二进制等)
      • 传输(HTTP/TCP 等)

      如果您没有定义绑定的类,那么 WCF 没有选择,只能根据这两个绑定元素的默认值创建一个通道,因此可能被设计为在没有绑定时切换到 basicHttpBinding定义。

      这是我的猜测。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多