2010-03-16 2 views
2

Как проверить состояние моего прокси-сервера перед выполнением вызовов к моей службе WCF.Состояние прокси-сервера WCF

У меня есть дуплексный канал, созданный с использованием фабрики дуплексного канала.

Перед выполнением любых вызовов на сервер я хочу проверить состояние прокси-объекта, созданного на фабрике каналов.

Я видел это в книге ... (для использования в немедленном окне)

? ((ICommunicationObject)flsProxy).State 

Но это дало это исключение ...

Не удается получить поля или методы вызова на экземпляр типа «System.ServiceModel.ICommunicationObject», потому что он является прокси-сервером для удаленного объекта .

Лучше ли просто перехватывать исключения?

ответ

1

При создании прокси-клиент с помощью DuplexChannelFactory<T>, вы должны получить обратно регулярный старый WCF канал:

Callbacks myCallbacks = new Callbacks(); 

    DuplexChannelFactory<IMyService> factory = 
    new DuplexChannelFactory<IMyService>(myCallbacks, 
     new NetTcpBinding(), new EndpointAddress(.....)); 

    IMyService proxy = factory.CreateChannel(); 

и вы должны быть в состоянии бросить, что в ICommunicationObject и проверить его состояние:

ICommunicationObject comobj = (ICommunicationObject)proy; 

    if(comobj.State != CommunicationState.Faulted) 
    { 
     // call the service method 
    } 

Где в этой цепочке заявлений больше не работает для вас?

Смежные вопросы