我有一个WCF服务方法被winform客户端调用。客户端向该方法传递几个字符串,然后该方法执行一系列可能需要超过20分钟的操作。 在进程进行大约15分钟后,客户端会收到TCP连接已终止的响应。 WCF服务继续处理超过这一点,直到它完成工作。 我已将客户端的绑定配置中的超时设置为30分钟。我也将编译批量超时设置为30分钟。 WCF服务返回一个字符串给客户,只是说“成功”,所以它不是关于传输的大小问题。几乎看起来好像IIS由于某种超时而终止了TCP连接。如何防止从WCF服务对winform客户端的超时响应
接收到对http://xxxxxxxxxxxxx.svc的HTTP响应时发生错误。这可能是由于服务端点绑定不使用HTTP协议。这也可能是由于一个HTTP请求上下文服务器(可能是由于服务关停)被中止。查看服务器日志获取更多详细信内部例外:底层连接已关闭:接收方发生意外错误。内部异常:无法从传输连接读取数据:现有连接被远程主机强制关闭。内部例外:现有连接被远程主机强行关闭
任何帮助?错误是由winform客户端生成的,而不是wcf服务的顺便说一句。
这里是绑定设置:
<wsHttpBinding>
<binding name="WSHttpBinding_STUFFGOESHERE" closeTimeout="00:30:00"
openTimeout="00:30:00" receiveTimeout="00:30:00" sendTimeout="00:30:00"
bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="524288000" maxReceivedMessageSize="65536" messageEncoding="Text"
textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<reliableSession ordered="true" inactivityTimeout="00:30:00"
enabled="false" />
<security mode="Message">
<transport clientCredentialType="Windows" proxyCredentialType="None"
realm="" />
<message clientCredentialType="Windows" negotiateServiceCredential="true"
algorithmSuite="Default" />
</security>
</binding>
</wsHttpBinding>
没有你也更新了服务器配置? – evgenyl 2013-04-25 18:06:52
是的,我在web配置中添加了httpRuntime maxRequestLength =“30000000”executionTimeout =“1800”。 – eBot 2013-04-25 18:27:48
我也发现当服务完成其操作并返回消息时,调用wcf服务的客户端应用程序会引发错误。 – eBot 2013-04-25 18:28:30