Ответ 1
Попробуйте установить значение тайм-аута в прокси-классе веб-службы:
WebReference.ProxyClass myProxy = new WebReference.ProxyClass();
myProxy.Timeout = 100000; //in milliseconds, e.g. 100 seconds
У меня есть веб-сервис, написанный на С#, который живет на сайте SharePoint. Я изменил файл web.config с помощью следующего кода:
<configuration>
<system.web>
<httpRuntime executionTimeout="360" />
...
для файла IIS Inetpub, файла SP. ISFI SP ISAPI и макетов SP web.config. Я также изменил файл machine.config с тем же кодом и попытался выявить любые таймауты, которые я вижу в IIS.
Когда я вызываю эту веб-службу из приложения Windows С#, я могу войти в веб-метод и начать отладку переменной, но через короткое время (~ 1 минута, возможно, меньше) значения переменных больше не присутствуют, потому что это возвращается
System.Net.WebException "Запрос был прерван: операция была отключена".
Я пытаюсь выяснить, где должны быть установлены правильные значения таймаута и как. Я перезапускаю IIS после того, как сделал все изменения, но ничего не изменилось, чтобы дать разные результаты.
Спасибо
Попробуйте установить значение тайм-аута в прокси-классе веб-службы:
WebReference.ProxyClass myProxy = new WebReference.ProxyClass();
myProxy.Timeout = 100000; //in milliseconds, e.g. 100 seconds
После создания вашего клиента, определяющего адрес привязки и конечной точки, вы можете назначить OperationTimeout,
client.InnerChannel.OperationTimeout = new TimeSpan(0, 5, 0);