У меня есть два приложения, подключенные дуплексным соединением WCF. Я хорошо работаю, пока соединение несовместимо.Сценарий повторного подключения в дуплексном WCF
Теперь я проверяю, как обращаться с сценариями повторного подключения, когда соединение потеряно и ему нужно снова подключиться. И я изо всех сил пытаюсь понять, как это работает в WCF.
Насколько я знаю, IChannel
является расходным, но ChannelFactory
стоит дорого. Поэтому я создаю один завод, а затем канал. Всякий раз, когда я обнаруживаю события или Faulted
в канале, I try
закрывает канал, отключает обработчики событий, а затем создает другой канал.
Но этот подход не работает очень хорошо, потому что иногда DuplexChannelFactory<T>.CreateChannel
получает нарушенный, а также, и это бросает исключение:
System.ServiceModel.CommunicationObjectAbortedException occurred
HResult=-2146233087
Message=The communication object, System.ServiceModel.InstanceContext, cannot be used for communication because it has been Aborted.
Как это возможно, что сам завод получает нарушенное таким образом?
Каков правильный подход к отключению/пересоединению в WCF?
Этот вопрос содержит агностик. Я хочу знать, как подойти к пересоединению. – vtortola
Спасибо за разъяснение. Я пытался ответить на часть 1. Попробуем написать свои мысли о том, как обрабатывать пересоединения на основе того, что я сделал. –