1

私はWCFnetNamedPipeBindingwsHttpBinding. 一方向メソッドがtrying せずに正常に実行できるかどうかを知りたいです。

EDIT誰かが指摘したように、接続性は特定の瞬間に成功し、次の失敗に失敗する可能性があります。私は気にしない。tryWCF にingの代替手段があるかどうかを知りたいだけです。サービスが稼働中で到達可能かどうかを確認する方法はありますか?

4

3 に答える 3

5

私の知る限り、一方向メソッドが正常に実行されたかどうかを判断する唯一の方法は、それが例外を生成するかどうかです。

メソッドが一方向メソッドである必要がない場合は、メソッドが失敗したか成功したかを示すブール値を返すことができます。

なぜこれをやろうとしているのかお聞きしてもよろしいですか?メソッドで例外をキャッチしないと、例外が発生した場合にエラー状態を知る方法がありません。

「try ing」の使用を誤解していて、実際にメソッドを実行しないという意味である場合は、実際にアクションをコミットせず、処理ステップのみを実行するメソッドのプロキシを作成できます。

完全にテスト目的でこれを行っている場合は、Visual Studio 単体テストを利用するか、プロジェクトを NUnit に接続することをお勧めします。

上記のポイントの 1 つでも質問の答えが得られない場合は、何を達成しようとしているのかを詳しく説明してください。

編集: 質問者による明確化を説明するために変更されました。

using(YourService svc = new YourService()){
    if(svc.State.Equals(!CommunicationState.Opened)){ /*Handle Error*/ } 
    svc.InnerChannel.Faulted += new EventHandler(YourFaultedEventHander); 
}

接続が現在開いているかどうかを確認し、サービスが障害状態になるかどうかを通知します。これにより、呼び出しが成功するかどうかを事前に知ることができます。ただし、その特定のメソッドが失敗する原因となる条件がまだあります。これは、サービス メソッドを正常に呼び出すことができる場合にのみ通知されます。

于 2011-02-24T19:54:59.757 に答える
4

呼び出しをテストして合格した後、何らかの理由で接続が切断され、次のコード ブロックが失敗した場合はどうなるでしょうか。tryエラーが表示された場合は、それを処理してからエラーを処理することをお勧めします。

于 2011-02-24T19:54:31.413 に答える
2

一方向操作の呼び出しが成功することが保証されるかどうかを知る方法はありません。一方向操作 (AFAIK) はすべてのバインディングでサポートされています。

呼び出しが一方向の操作であるかどうかを単純に判断したい場合は、サービスの説明で操作を繰り返し (これがクライアント側の呼び出しかサーバー側の呼び出しかを示していません)、操作は一方向かどうかです。

于 2011-02-24T19:52:39.463 に答える