Какое исключение выдается, если время ожидания веб-службы, которой я пользуюсь? - PullRequest
4 голосов
/ 18 марта 2010

Я вызываю веб-сервис .NET 2.0 в рамках моего существующего веб-сервиса .NET 2.0. Я хотел бы знать, какое исключение выдается из веб-метода, если происходит тайм-аут. Я установил тайм-аут веб-службы на более низкое значение, чем 90 секунд по умолчанию, и я хочу добавить бизнес-логику, если тайм-аут случается.

Является ли [System.Net.WebException][1] исключением, на которое я должен смотреть?

Ответы [ 2 ]

8 голосов
/ 18 марта 2010

Этот тип зависит от того, какую «версию» веб-сервисов вы используете.

Используя WCF, вы получите TimeoutException . Как правило, вы также должны обрабатывать CommunicationException , если вы пытаетесь обработать тайм-ауты. Иногда я также видел FaultException , хотя технически не должно происходить (но в любом случае это происходит время от времени). FaultException является потомком CommunicationException, поэтому вам не нужно обрабатывать его отдельно, просто полезно знать, что это может произойти.

В ASMX вы обычно получаете завернутый SoapException , для которого вам нужно проверить свойство InnerException, чтобы увидеть, что действительно пошло не так.

Используя WSE, вы увидите еще одно исключение, ResponseProcessingException , для которого вы снова должны проверить InnerException для получения подробной информации.

1 голос
/ 18 марта 2010

Вы должны искать TimeoutException:

Исключение, которое выдается, когда время, отведенное для процесса или операции, истекло.

...