我使用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,以防万一。
答案 0 :(得分:1)
我不知道你为什么在客户端获得一个customBinding(我认为Visual Studio在幕后使用的wsdl.exe工具有点困惑)但你可以安全地用原始webHttpBinding替换自定义绑定。 / p>
作为替代方案,我认为你也可以指定也可以在&lt; httpTransport&gt;上指定maxReceivedMessageSize。像这样的元素:
<httpTransport maxReceivedMessageSize="2000000000" />