У меня есть очень простая служба WCF SOAP, которая вносит некоторые изменения в БД при каждом вызове и возвращает некоторый ответ. Я также использую ServiceChannel для вызова его из кода на стороне клиента.
Я хочу убедиться, что мой код на стороне клиента не дает сбой, когда служба слишком занята, поэтому реализовал Шаблон повторной попытки для повторной попытки вызова службы в случае обнаружения исключения. Однако я не хочу повторять попытку, если исключение вызвано моим кодом на стороне сервера WCF (если это не связано с подключением или если какой-либо код OperationContract был выполнен в любом случае (тайм-аут не не значит, что не было, верно?)).
Поэтому я хочу повторить попытку, только если
- я отправил запрос
- Поймал исключение
- Ни один код на стороне сервера в моем методе OperationContract не был выполнен
В статье Microsoft (ссылка выше) почти нет информации о том, какие именно типы исключений являются временными. Какие типы исключений следует использовать, чтобы поймать именно то, что мне нужно? Или как их фильтровать?
IsTransient(Exception ex)
.WebExceptionStatus.ConnectionClosed, WebExceptionStatus.Timeout, WebExceptionStatus.RequestCanceled }. Contains(webException.Status
- person vendettamit   schedule 25.09.2015