ICommunicationObject.State не работают?
Привет,
Я создаю свой клиент WCF с помощью DuplexChannelFactory, проблема в том, что когда я делаю это:
((ICommunicationObject)this.GetMyServiceInterfaceChannel).State
Я получаю следующее исключение:
Невозможно получить поля или вызвать методы для экземпляра типа System.ServiceModel.ICommunicationObject, поскольку он является прокси для удаленного объекта.
Зачем?
Мне нужно проверить, если канал неисправен.
Edit1:
ClientService clientService = new ClientService();
InstanceContext context = new InstanceContext(clientService);
DuplexChannelFactory<My.ServiceContracts.IMyClientService> factory = new DuplexChannelFactory<My.ServiceContracts.IMyClientService>(context, connectionName);
factory.Credentials.UserName.UserName = anvandarNamn;
factory.Credentials.UserName.Password = password;
return factory.CreateChannel();
1 ответ
Решение
Приведите в качестве IClientChannel, затем проверьте состояние
Но будьте осторожны, что состояние обновляется только когда вы звоните. Если вы хотите проверить, что время ожидания канала не истекло, вы не сможете сделать вызов, который сгенерирует исключение.