WCF-返回的数据变大时客户端中出现异常
我有一个WCF服务器。客户端可以进行的调用之一生成一个数据数组作为其响应。每个数据项大约为6k,似乎当数组变得足够大(大约650个项目)时,WCF客户端会给出以下异常: 接收请求时出错 HTTP对的响应 . 这可能是由于服务 端点绑定不使用HTTP 协议这也可能是由于 正在中止HTTP请求上下文 由服务器执行(可能是由于 服务关闭)。请参阅服务器 日志以获取更多详细信息 服务器没有关闭,如果我更改函数调用以返回少量数据,服务器将使用有效数据进行响应。我不确定如何获取服务器日志,但这似乎是客户端的一个例外,所以我怀疑服务器日志是否会对我有所帮助 我在客户机上使用了MaxReceivedMessageSize,但没有任何帮助(目前为16MB)。有什么想法吗?TIA我还要检查一下WCF-返回的数据变大时客户端中出现异常,wcf,wcf-client,Wcf,Wcf Client,我有一个WCF服务器。客户端可以进行的调用之一生成一个数据数组作为其响应。每个数据项大约为6k,似乎当数组变得足够大(大约650个项目)时,WCF客户端会给出以下异常: 接收请求时出错 HTTP对的响应 . 这可能是由于服务 端点绑定不使用HTTP 协议这也可能是由于 正在中止HTTP请求上下文 由服务器执行(可能是由于 服务关闭)。请参阅服务器 日志以获取更多详细信息 服务器没有关闭,如果我更改函数调用以返回少量数据,服务器将使用有效数据进行响应。我不确定如何获取服务器日志,但这似乎是客户端
<readerQuotas maxDepth="32" maxStringContentLength="65536" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
节中的绑定。这些也会产生影响。很可能是
maxArrayLength
,因为默认值是~16KB,您将获得大约3900KB的内存,每个内存为6KB,有650个项目。我的包大小也有类似的问题,但在我的情况下,包的大小比您的大(错误消息为“对象图中可序列化或反序列化的最大项数为‘65536’”。我已解决了为我的服务配置绑定的问题。我将在整个绑定下面发布(请注意readerQuotas):
我希望它对你也有用
以下是我博客上的帖子:
谢谢,
Roberto我没有使用配置文件,我是以编程方式设置这些内容的,我有binding.ReaderQuotas=System.Xml.xmldialdictionaryreaderquotas.Max;它将您建议的项目设置为非常高的值。您在服务器和客户端都设置了这些值吗?如果上述设置没有帮助,请尝试检查该值。默认值为4MB,而您正徘徊在该级别附近。请看是的,服务器和客户端都是。我将尝试maxRequestLength。谢谢。
<netTcpBinding>
<binding name="NetTcpBinding_IServiceRequest"
closeTimeout="00:01:00"
openTimeout="00:01:00"
receiveTimeout="00:10:00"
sendTimeout="00:01:00"
transactionFlow="false"
transferMode="Buffered"
transactionProtocol="OleTransactions"
hostNameComparisonMode="StrongWildcard"
listenBacklog="10"
maxBufferPoolSize="524288"
maxBufferSize="2147483647"
maxConnections="10"
maxReceivedMessageSize="2147483647">
<readerQuotas
maxDepth="32"
maxStringContentLength="8192"
maxArrayLength="2147483647"
maxBytesPerRead="4096"
maxNameTableCharCount="16384" />
<reliableSession ordered="true"
inactivityTimeout="00:10:00"
enabled="false" />
<security mode="Transport">
<transport
clientCredentialType="Windows"
protectionLevel="EncryptAndSign" />
<message clientCredentialType="Windows" />
</security>
</binding>
</netTcpBinding>