c # ChannelFactory: Как восстановить / повторно открыть соединение после FaultException | TimeoutException? - PullRequest
1 голос
/ 02 августа 2010

Я использую ChannelFactory с netTcpBinding. Иногда я получаю исключения, и после них я больше не могу использовать канал, потому что он находится в неисправном состоянии.

Что я должен сделать, чтобы восстановить соединение? Должен ли я вызвать abort (), затем закрыть / открыть. Или Close (), затем open (), или я должен просто использовать новый объект, такой как:

myPublicChannel = this.ChannelFactory.CreateChannel();

Должен ли я открыть соединение только в моем блоке перехвата? Понадобится ли мне специальный механизм блокировки, потому что другие потоки могут также использовать этот канал и затем попытаться восстановить соединение одновременно.

Большое спасибо за ваш ответ заранее!

Спасибо за ваш ответ. Вот ссылка, которую я нашел, которая может быть полезна для других с той же проблемой / вопросом:

http://blogs.msdn.com/b/drnick/archive/2007/11/05/custom-transport-retry-logic.aspx

1 Ответ

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

Я бы на самом деле закрыл и установил бы его в null, чтобы удалить что-либо из соединения, а затем использовал open, я написал несколько веб-сервисов до того, как неиспользование ChannelFactory вызвало некоторые утечки памяти и другие проблемы.

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