wcf и нестабильное соединение - PullRequest
0 голосов
/ 25 августа 2010

У меня есть служба wcf, размещенная в iis. Конечная точка использует wsHttpBinding.

У меня много клиентов, которые пользуются этой услугой.
Интернет-соединение нестабильно. Клиенты используют сервис для вставки данных в БД.

Какова лучшая практика обработки исключений в клиенте.
Является ли целесообразным использование используемых государственных деятелей и инициализация нового соединения каждый раз, когда клиенту необходимо вставить данные (вызов службы), или следует сохранять открытую ссылку и повторную инициализацию каждый раз, когда он не обнаруживает соединение?

Мне не нравится, когда клиент вызывает сервис, чтобы показать ошибку пользователю, говорящему, чтобы повторить попытку. Может ли он повторить попытку автоматически?

Привет

1 Ответ

1 голос
/ 25 августа 2010

Во-первых, не используйте использование при работе с прокси или каналом WCF. Используйте этот подход , чтобы закрыть прокси или канал. Использование прокси-сервера зависит от вашего приложения, ваших требований и текущей конфигурации.

WsHttpBinding по умолчанию использует безопасность сообщений с аутентификацией Windows и установлением контекста безопасности. Это означает, что в начале общения пользователь проходит аутентификацию и создается контекст безопасности. Контекст безопасности аналогичен сеансу безопасности, поэтому пользователю не нужно проходить аутентификацию при последующих вызовах с того же прокси-сервера. Использование контекста безопасности полезно только в том случае, если вы планируете использовать прокси для нескольких вызовов, в противном случае это накладные расходы. Но создание контекста безопасности также имеет побочный эффект - один экземпляр службы обрабатывает все вызовы с этого прокси. Время жизни сервиса контролируется несколькими таймаутами. Наиболее важным является тайм-аут приема со значением по умолчанию 10 минут. Если в течение 10 минут запрос от прокси не поступает, экземпляр освобождается и канал закрывается, но прокси не знает об этом. В следующий раз, когда вы будете использовать прокси-сервер, сработает исключение. Канал также закрыт любым необработанным исключением во время обработки запроса на обслуживание. Поэтому, если вы хотите повторно использовать прокси, вам придется столкнуться с дополнительной сложностью проверки состояния канала и воссоздания прокси, если что-то пойдет не так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...