WCF:奇怪的自动服务引用

时间:2015-09-22 08:01:36

标签: c# visual-studio wcf wcf-binding

我使用netHttp绑定创建了一个简单的WCF服务,然后通过"添加服务引用| Discover"自动将服务引用添加到另一个应用程序中。结果看起来很奇怪。

而不是原来的NetHttpBinding我得到CustomBinding

虽然有效,但令人烦恼的是,我无法将maxReceivedMessageSize添加到自定义绑定中。

问题:这有什么好的理由,还是我可以用原始的netHttpBinding安全地替换自定义绑定?

主持人的app.config:

  <endpoint address="images/netbh" binding="netHttpBinding" contract="WcfImageService.IImageService" bindingConfiguration="netHttp_bh" />

  <netHttpBinding>
    <binding name="netHttp_bh" messageEncoding="Binary">
      <webSocketSettings transportUsage="Never"/>
    </binding>
  </netHttpBinding>

客户端生成的app.config:

        <customBinding>
            <binding name="NetHttpBinding_IImageService1" >
                <binaryMessageEncoding />
                <httpTransport />
            </binding>
        </customBinding>

        <endpoint address="http://localhost:8080/images/netbh" binding="customBinding"
            bindingConfiguration="NetHttpBinding_IImageService1" contract="ImageServiceReference.IImageService"
            name="NetHttpBinding_IImageService1" />

我正在使用Visual Studio 2015,以防万一。

1 个答案:

答案 0 :(得分:1)

我不知道你为什么在客户端获得一个customBinding(我认为Visual Studio在幕后使用的wsdl.exe工具有点困惑)但你可以安全地用原始webHttpBinding替换自定义绑定。 / p>

作为替代方案,我认为你也可以指定也可以在&lt; httpTransport&gt;上指定maxReceivedMessageSize。像这样的元素:

<httpTransport maxReceivedMessageSize="2000000000" />