你好

我用DuplexChannelFactory创建WCF客户端,问题是当我这样做时:

((ICommunicationObject)this.GetMyServiceInterfaceChannel).State


我收到以下异常:

无法获取类型'System.ServiceModel.ICommunicationObject'的实例上的字段或调用方法,因为它是远程对象的代理。

为什么?

我需要检查通道是否有故障。

编辑1:

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();

最佳答案

投射为IClientChannel,然后检查状态

但是请注意,只有在您拨打电话时,状态才会更新。如果要测试通道是否超时,则只有在发出引发异常的调用后才有可能。

关于c# - ICommunicationObject.State不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10085779/

10-12 01:42