当我尝试从wcf服务返回大量数据时。回来后我遇到了崩溃。消息是“基础连接已关闭:连接意外关闭。”。
我已阅读有关此问题的提示;他们没有帮助我。我尝试增加绑定参数无济于事。我添加了一条痕迹,它没有给我任何有用的信息。
我发现我可以毫无问题地返回3274条记录但是3275是个问题。
我可以尝试分页,但这是最后的手段。
以下是主程序
中配置文件的关键部分 <bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="6553600" maxBufferPoolSize="524288" maxReceivedMessageSize="6553600"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
来自wcf
<binding closeTimeout="00:10:00" openTimeout="00:10:00" receiveTimeout="00:10:00"
sendTimeout="00:10:00" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="2147483647" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647"
maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
<security mode="None" />
</binding>
答案 0 :(得分:1)
该问题很可能与客户端或服务器配置有关。因此,您可能需要/需要尝试使用readerQuota值。 (供参考,以下代表最大值)。
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
maxArrayLength="2147483647" maxBytesPerRead="2147483647"
maxNameTableCharCount="2147483647" />
您可能希望在客户端和服务器上启用WCF跟踪并查看日志以帮助确定潜在的错误/原因。
参考:http://msdn.microsoft.com/en-us/library/ms733025(v=vs.110).aspx