I have a Web Service that receives information in my project that the client address is pointing to:
http://Server/PaymentWCF/Service.svc?WSDL
ServiceClient client = new ServiceClient();
foreach (Record rc in ListOne)
{
client.RecordInsert(rc);
}
foreach (Record rc in ListTwo)
{
client.RecordInsert(rc);
}
client.Close();
There are times when we have the ServiceClient open for awhile since we have many records to process. (Up to 3,000) Last night, I received the following error message:
The request channel timed out while waiting for a reply after 00:04:59.9374976. Increase the timeout value passed to the call to Request or increase the SendTimeout value on the Binding. The time allotted to this operation may have been a portion of a longer timeout.
However, the bindings do not have any value of 00:04:59 anywhere:
<wsHttpBinding>
<binding name="WSHttpBinding_IService" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="524288" 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:10:00"
enabled="false" />
<security mode="None">
<transport clientCredentialType="Windows" proxyCredentialType="None" realm="" />
<message clientCredentialType="Windows" negotiateServiceCredential="true" algorithmSuite="Default" />
</security>
</binding>
</wsHttpBinding>
Would it work if we open and closed the connection every 1,000 records? The client would not time out since it won’t be open long. We have normal operation when we process 1000-15000 records. But when we have upwards to 3,000 is where we start seeing the timeout.
How would you suggest I go about doing this?
Did you check your IIS settings?