I have a WCF service method being called by a winform client. The client passes a couple strings to the method, the method then performs a series of operations which can take in excess of 20 minutes. At around 15 minutes into the process the client receives a response that the TCP connection has been terminated. The WCF service continues to process beyond this point until it finishes the job. I have set the timeouts in the binding configuration in the client to 30 minutes each. I have also set the compilation batch timeout to 30 minutes. The WCF service returns a string to the client just saying "Success", so it is not a size issues regarding the transmission. It almost seems as if IIS is terminating the TCP connection due to some timeout.
An error occurred while receiving the HTTP response to http://xxxxxxxxxxxxx.svc . This could be due to the service endpoint binding not using the HTTP protocol. This could also be due to an HTTP request context being aborted by the server (possibly due to the service shutting down). See server logs for more details. Inner Exception: The underlying connection was closed: An unexpected error occurred on a receive. Inner Exception: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host. Inner Exception: An existing connection was forcibly closed by the remote host
Any help? The error is generated by the winform client, not the wcf service btw.
Here are the binding settings:
<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>