我有一個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