在我的WCF服务中,当尝试传输大数据时,我经常会收到以下错误:The underlying connection was closed: The connection was closed unexpectedly
我想知道是什么具体原因导致了这个错误,所以我设置了WCF跟踪并可以读取traces.svclog文件。
问题在于,我可以在这个文件中看到很多关于流程的信息,我可以看到异常发生的确切时间,但我无法看到确切的原因。是否是由于MaxReceivedMessageSize等原因引起的?
是这样吗,traces.svclog无法包含这样的信息,还是我做错了什么?
如何获取这样的信息?
编辑(添加):
来自我的服务器端app.config:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="NAVBinding_ICustomer_Service"
closeTimeout="01:50:00"
openTimeout="01:50:00" receiveTimeout="01:50:00" sendTimeout="01:50:00"
allowCookies="false" 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">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<services>
<service name = "Customer_Service" behaviorConfiguration="returnFaults">
<endpoint name="NAVBinding_ICustomer_Service"
address = "http://localhost:8000/nav/customer"
binding = "basicHttpBinding"
bindingConfiguration= "NAVBinding_ICustomer_Service"
contract = "NAVServiceReference.ICustomer_Service"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="returnFaults" >
<serviceDebug includeExceptionDetailInFaults="true" />
<serviceMetadata httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
编辑(新增):
将WCF服务从“黑盒子”转变为易于故障排除的服务,以便告知某些情况无法按预期执行的原因是什么,哪种方法是正确且最佳的?您使用哪些工具和技术来排除WCF服务问题?
Stream
的方法),还是缓冲传输(默认)? - marc_s