C# ICommunicationObject.状态不工作?
你好, 我使用DuplexChannelFactory创建WCF客户端,问题是当我这样做时:C# ICommunicationObject.状态不工作?,c#,.net,wcf,faulted,C#,.net,Wcf,Faulted,你好, 我使用DuplexChannelFactory创建WCF客户端,问题是当我这样做时: ((ICommunicationObject)this.GetMyServiceInterfaceChannel).State 我得到以下例外情况: 无法获取类型为“System.ServiceModel.ICommunicationObject”的实例上的字段或调用方法,因为它是远程对象的代理。 为什么? 我需要检查通道是否有故障 编辑1: ClientService clientService =
((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();
ClientService ClientService=newclientservice();
InstanceContext上下文=新InstanceContext(clientService);
DuplexChannelFactory=新的DuplexChannelFactory(上下文,connectionName);
factory.Credentials.UserName.UserName=anvandarnam;
factory.Credentials.UserName.Password=密码;
返回factory.CreateChannel();
强制转换为IClientChannel,然后检查状态
但是要小心,状态只有在你打电话时才会更新。如果要测试通道是否超时,则必须先进行引发异常的调用。转换为IClientChannel,然后检查状态
但是要小心,状态只有在你打电话时才会更新。如果要测试通道是否超时,则在发出引发异常的调用之前是不可能的。我在使用iClintChannel时遇到了完全相同的异常?能否添加“GetMyServiceInterfaceChannel”创建代码?这是因为您使用InstanceContext创建了DuplexChannelFactory。您必须对InstanceContext本身使用State属性。使用iClintChannel时,我会遇到完全相同的异常情况?能否添加“GetMyServiceInterfaceChannel”创建代码?这是因为您使用InstanceContext创建了DuplexChannelFactory。必须对InstanceContext本身使用State属性