Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Распределённые приложения и сеть > WCF. Как определить, жив ли TransparentProxy?


Автор: opozdaika 23.7.2009, 16:31
Вот есть сервер и клиент WCF. Всё работает. Потом вдруг оборвался провод, а клиент об этом ничего не знает. У него по-прежнему есть прокси для вызова методов сервера, причем этот прокси не равен null. Но при попытке вызова метода по этому прокси приходит исключение:

-----------------------------------------------
Коммуникационный объект System.ServiceModel.Channels.ServiceChannel нельзя использовать для связи, так как он находится в состоянии Faulted.
----------- [или по-агнлийски]-------------
The communication object, System.ServiceModel.Channels.ServiceChannel, cannot be used for communication because it is in the Faulted state
-----------------------------------------------

Вот нехитрый код, вызывающий исключение:
 
 if (m_Proxy != null) m_Proxy.CallMethod();

Как видите, я подстраховался проверкой на null, но это меня не спасло. 

Вопрос: как узнать, что  ServiceChannel находится в состоянии Faulted?

Вариатн с 
try { m_Proxy.CallMethod(); } catch { }
прошу не предлагать, т.к. я хочу разобраться и сдалеть со своей проверкой.

Спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)