0

クライアントが例外をスローしている1つのWCFサービスを使用しています(例外:通信オブジェクトSystem.ServiceModel.Channels.ServiceChannelは、Faulted状態であるため、通信に使用できません)。以降のすべての呼び出しで同じ例外がスローされます。

私はインターネットでクライアントがclose()/ Abort()チャネルを必要としていることを読みました、これは問題を解決します。それは完全に正しいですか?

また、サービス開発者が提供するカスタマーサービスチャネルファクトリを使用しています。チャネルを作成すると、closeメソッドとabortメソッドが表示されません。では、クライアント側でカスタムサービスチャネルインスタンスを作成するときに、これらのcloseメソッドとabortメソッドを取得するにはどうすればよいですか?

4

1 に答える 1

0

IClientChannelインターフェイスを実装するプロキシインスタンスがあると仮定すると、これを使用する方法(できれば正しい方法)があります。

IClientChannel clientChannel = (IClientChannel)proxy;
bool success = false;

try
{
    // do something with the proxy
    clientChannel.Close();
    success = true;
}
finally
{
    if (!success)
    {
        clientChannel.Abort();
    }
}

これを確認することもできます。共有クラスまたは関数を使用して操作をラップできます。

于 2012-09-20T12:55:56.397 に答える