Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ICommunicationObject.状态不工作?_C#_.net_Wcf_Faulted - Fatal编程技术网

C# ICommunicationObject.状态不工作?

C# ICommunicationObject.状态不工作?,c#,.net,wcf,faulted,C#,.net,Wcf,Faulted,你好, 我使用DuplexChannelFactory创建WCF客户端,问题是当我这样做时: ((ICommunicationObject)this.GetMyServiceInterfaceChannel).State 我得到以下例外情况: 无法获取类型为“System.ServiceModel.ICommunicationObject”的实例上的字段或调用方法,因为它是远程对象的代理。 为什么? 我需要检查通道是否有故障 编辑1: ClientService clientService =

你好,

我使用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();
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属性