【问题标题】:TCP error 10055: An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was fullTCP 错误 10055:无法对套接字执行操作,因为系统缺少足够的缓冲区空间或队列已满
【发布时间】:2011-02-11 09:53:21
【问题描述】:

我收到此 TCP 错误:(10055: An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full) occurred while transmitting data.

如果我尝试传输任何超过 50 MB 的文件,我显然会开始收到此错误。 我正在使用 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>

【问题讨论】:

  • 你试过增加你的maxBufferSize吗?
  • 我试过这个 maxBufferSize="2147483647" maxBufferPoolSize="524288" maxReceivedMessageSize="2147483647" 却无济于事。我还是觉得一定是tomcat配置问题,。好像它是 IIS 我将不得不更改大型二进制文件的 maxrequestlendth 参数
  • 这是 Windows 配置/资源问题,问题不在于您的应用程序。请参阅下面的答案。

标签: java wcf tomcat mtom


【解决方案1】:

如果您收到错误消息和google it,您会找到很多答案。

TCP 错误(10055:无法对套接字执行操作,因为系统缺少足够的缓冲区空间或队列已满)

这是一个。 http://support.microsoft.com/kb/196271

【讨论】:

  • 感谢 Romain,如果谷歌搜索在这种情况下有效,我不会在这里,但我仍然想知道如何避免这个错误,并且仍然通过 web 服务将数据传输到 Java。我有一个 WCF 服务器和一个客户端,即使传输 250 mb,它们也能完美运行,但是一旦我将解决方案转移到 Java webservices,即使在 50 mb 时我也开始出错。我确定我正在使用正确的 DataHandler 类型,如 Metro 和 Jax-ws。无论如何,我希望有任何专家意见。谢谢你的回答
  • 我相信它的互操作性会导致 Java 和 WCF 之间出现问题
猜你喜欢
  • 2011-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-12
  • 2013-06-14
  • 1970-01-01
  • 2015-12-18
  • 1970-01-01
相关资源
最近更新 更多