Я подключаюсь к предоставленной поставщику веб-службе ASMX и отправляю набор данных по проводу. Моя первая попытка ударила тайм-аут в 1 минуту, который Visual Studio выбрасывает по умолчанию в файле app.config, когда вы добавляете ссылку на службу в проект. Я увеличил его до 10 минут, еще один тайм-аут. 1 час, другой таймаут:.NET Web Service (asmx) Задача таймаута
Error: System.TimeoutException: The request channel timed out while waiting for
a reply after 00:59:59.6874880. 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. ---> System.TimeoutE
xception: The HTTP request to 'http://servername/servicename.asmx' has exceeded the allotted timeout of 01:00:00. The time allotted to this
operation may have been a portion of a longer timeout. ---> System.Net.WebExcept
ion: The operation has timed out
at System.Net.HttpWebRequest.GetResponse() [... lengthly stacktrace follows]
Я связался с продавцом. Они подтвердили, что звонок может занять более часа (не спрашивайте, они являются проклятием моего существования.) Я увеличил таймаут до 10 часов, чтобы быть в безопасности. Однако вызов веб-службы продолжается до 1 часа. Соответствующий раздел app.config теперь выглядит следующим образом:
<basicHttpBinding>
<binding name="BindingName" closeTimeout="10:00:00"
openTimeout="10:00:00" receiveTimeout="10:00:00" sendTimeout="10:00:00"
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="2147483647" maxBufferPoolSize="524288" maxReceivedMessageSize="2147483647"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="2147483647"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None" realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
Довольно абсурдно, но независимо от тайм-аут по-прежнему ногами в на 1 час. К сожалению, для каждого изменения требуется, как минимум, еще один час для тестирования. Есть ли какой-то внутренний предел, на который я натыкаюсь - где-то меняют другую настройку тайм-аута? Все изменения в этих настройках до один час имел ожидаемый эффект.
Спасибо за любую помощь, которую вы можете предоставить!
Когда он срабатывает через один час, это точно такое же исключение, которое вы получаете, когда таймаут установлен на 1 минуту? –
Да, это та же ошибка. –