Java TCP错误10055:无法对套接字执行操作,因为系统缺少足够的缓冲区空间或队列已满
我收到此TCP错误:Java TCP错误10055:无法对套接字执行操作,因为系统缺少足够的缓冲区空间或队列已满,java,wcf,tomcat,mtom,Java,Wcf,Tomcat,Mtom,我收到此TCP错误:(10055:无法执行套接字上的操作,因为系统缺少足够的缓冲区空间或队列已满)在传输数据时发生。 显然,如果我试图传输任何超过50MB的文件,就会出现这个错误。 我正在使用WCF。我有用Java/Tomcat编写的web服务 这可能是服务器端配置中的问题吗 服务器是Tomcat,你能告诉我在这种情况下自定义哪个值吗 <bindings> <basicHttpBinding> <binding name="MyWebService1So
(10055:无法执行套接字上的操作,因为系统缺少足够的缓冲区空间或队列已满)在传输数据时发生。
显然,如果我试图传输任何超过50MB的文件,就会出现这个错误。
我正在使用WCF。我有用Java/Tomcat编写的web服务
这可能是服务器端配置中的问题吗
服务器是Tomcat,你能告诉我在这种情况下自定义哪个值吗
<bindings>
<basicHttpBinding>
<binding name="MyWebService1SoapHttpPortBinding" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:11:00"
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="4000000" maxReceivedMessageSize="99999999"
messageEncoding="Mtom" textEncoding="utf-8" transferMode="StreamedRequest"
useDefaultWebProxy="true">
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://[IP]/Transfer"
binding="basicHttpBinding" bindingConfiguration="MyWebService1SoapHttpPortBinding"
contract="Transfer" name="MyWebService1SoapHttpPort" />
</client>
如果你记下错误信息,你会找到很多答案 TCP错误(10055:无法执行套接字上的操作,因为系统缺少足够的缓冲区空间或队列已满) 这里有一个。
您是否尝试过增加您的
maxBufferSize
?我已经尝试过这个maxBufferSize=“2147483647”maxBufferPoolSize=“524288”maxReceivedMessageSize=“2147483647”了。我仍然认为这一定是tomcat的配置问题,。就好像是IIS一样,我必须更改大型bninaryIt的maxrequestlendth参数。这是windows配置/资源问题,问题不在于你的应用程序。请看下面的答案。谢谢Romain,如果谷歌搜索在这种情况下有效,我不会在这里,但我想知道如何避免这个错误,并且仍然通过Web服务将数据传输到Java。我有一个WCF服务器和一个客户机,即使对于250MB的传输,它们也能完美地工作,然而,一旦我将解决方案转移到JavaWebServices,即使在50MB时,我也开始出现错误。我确信我使用的是符合metro、Jax-ws的正确数据处理程序类型。无论如何,我希望有任何专家的意见。谢谢你的回答,我相信它的互操作性导致了Java和WCF之间的问题