1

やあ、

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

1 に答える 1

4

IClientChannelとしてキャストし、状態を確認します

ただし、状態は電話をかけたときにのみ更新されることに注意してください。チャネルがタイムアウトしないことをテストする場合は、例外をスローする呼び出しを行うまでは不可能です。

于 2012-04-10T09:02:13.560 に答える