我查看了与此问题相关的大多数问题,但没有一个解决方案正在发挥作用。我所拥有的绑定列在下面......
服务器
<basicHttpBinding>
<binding name="UploadSoap" maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" messageEncoding="Text">
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
<security mode="Transport"></security>
</binding>
</basicHttpBinding>
<webHttpBinding>
<binding name="UploadSoapWeb" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" />
</webHttpBinding>
<client>
<endpoint address="https:.../upload.asmx" binding="webHttpBinding" bindingConfiguration="UploadSoapWeb" contract="Upload.UploadSoap" name="UploadSoap" />
</client>
客户端
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_service" maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" messageEncoding="Text">
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://.../service.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_service"
contract="HH.service" name="BasicHttpBinding_service" />
</client>
我已尝试过基本绑定和Web绑定,但我仍然收到错误消息。
由于
答案 0 :(得分:1)
您尚未为服务设置显式绑定,因此默认配置值为basicHttpBinding
。 maxReceivedMessageSize
的默认值为64KB。
请注意,maxReceivedMessageSize
仅适用于邮件接收者,而不适用于邮件发件人。如果客户端发送大量消息,则不需要设置这些值。
将服务器端绑定更新为以下内容:
<basicHttpBinding>
<!-- Unnamed (default) binding-->
<binding maxBufferPoolSize="2147483647"
maxBufferSize="2147483647"
maxReceivedMessageSize="2147483647"
messageEncoding="Text" /> <!-- Consider using Mtom if you're transfering binary data-->
<binding name="UploadSoap">
<security mode="Transport"></security>
</binding>
</basicHttpBinding>
<client>
<endpoint address="https:.../upload.asmx"
binding="basicHttpBinding"
bindingConfiguration="UploadSoap"
contract="Upload.UploadSoap" name="UploadSoap" />
</client>
未命名的绑定将使用basicHttpBinding
而不是bindingConfiguration
为任何端点,服务器或客户端提供默认值。
我认为您的客户没有收到大回复信息。
答案 1 :(得分:0)
如果您从服务中收到413错误,则问题似乎是您的服务配置没有任何明确定义的服务端点,因此您的绑定配置为&# 39; ve创建并未被使用。
您需要在服务配置中添加<services>
部分,如下所示:
<services>
<service name="YourServiceName">
<endpoint address="" binding="basicHttpBinding"
bindingConfiguration="UploadSoap"
contract="YourContractName" />
</service>
</services>
正如目前发布的那样,没有任何内容告诉WCF使用您定义的服务绑定配置,因此默认情况下,WCF将使用basicHttpBinding
和默认(较低)值。
解决此问题的第二种方法是定义绑定配置,并通过省略name
属性将其设置为该类型绑定的默认值,如下所示:
<binding maxBufferPoolSize="2147483647"
maxBufferSize="2147483647"
maxReceivedMessageSize="2147483647"
messageEncoding="Text">
<readerQuotas maxDepth="2147483647"
maxStringContentLength="2147483647"
maxArrayLength="2147483647"
maxBytesPerRead="2147483647"
maxNameTableCharCount="2147483647" />
<security mode="Transport"></security>
</binding>
我通常更喜欢第一种方法(设置一个显式的服务端点),但要么应该工作。