У меня есть веб-служба, которая получает информацию в моем проекте, на которую указывает адрес клиента: 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();
Бывают случаи, когда ServiceClient открыт на некоторое время, поскольку у нас много записей.обрабатывать.(До 3000) Вчера вечером я получил следующее сообщение об ошибке:
Время ожидания канала запроса истекло при ожидании ответа после 00: 04: 59.9374976.Увеличьте значение тайм-аута, передаваемое вызову Request, или увеличьте значение SendTimeout в Binding.Время, отведенное для этой операции, могло быть частью более длительного времени ожидания.
Однако привязки нигде не имеют значения 00:04:59:
<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>
Будет ли это работать, если мы открываем и закрываем соединение каждые 1000 записей?У клиента не будет тайм-аут, так как он не будет открыт долго.У нас нормальная работа, когда мы обрабатываем 1000-15000 записей.Но когда у нас до 3000, мы начинаем видеть тайм-аут.
Как бы вы посоветовали мне сделать это?