2

WCF プロキシに関しては、常に try/Close/catch/Abort のガイダンスに従っています。私は現在、MVC コントローラーでプロキシーを作成し、それらを範囲外にするコード・ベースに直面しています。私は、try/Close/catch/Abort を使用するようにコード ベースを編集する必要があると主張していますが、抵抗があります。

問題/利点を説明するためにキャプチャできるメトリック(perfmonなど)を知っている人はいますか。または、誰も異議を唱えることのできない問題/利点を説明する決定的な参照ですか?

4

2 に答える 2

1

問題を模倣するサンプル アプリケーションを作成できます。私は試していませんが、これを試すことができます。

  1. maxConcurrentCalls簡単なサービスを作成し、 andを 5 つに制限しmaxConcurrentSessionsます。

  2. クライアント アプリケーションを作成し、その中で接続を閉じずにサービス メソッドを呼び出します。

  3. 6 つ以上のクライアントを起動する

  4. クライアントから新しい接続を開くとどうなるかを確認してください。おそらくクライアントは一定時間待機し、例外が発生します。

クライアントが接続を適切に閉じない場合、接続はサービスで開いたままになるため、一度に数千のクライアントがサービスに接続し、接続を開いたままにするとどうなりますか? このサービスには、一度に「n」個の接続をサーバー化できるという制限があります。そのため、サービスはクライアントからの新しい要求を処理できません。そのため、接続を閉じることが非常に重要です。

usingWCFサービスの問題についてはご存知だと思います。私のアプリケーションでは、このスレッドで述べたように、拡張メソッドを使用して WCF 接続を閉じます。

于 2012-10-22T15:12:25.957 に答える
0

サーバーとクライアントの両方で、コマンド プロンプトから単純な「netstat -N」を試しましたか? 多くの待機中/保留中の接続が見られる可能性が高く、理由もなくサーバー リソースが使い果たされる可能性があります。

于 2012-10-20T19:28:59.347 に答える