3

私のサイトは IIS ホスティングでホストされています。サイトには、WCF サービスを呼び出して結果を返す必要がある機能があります。問題は、サイトが WCF サービスへの呼び出しを処理していることです。別の Web サイトの呼び出しがフリーズし、コンテンツを高速に返さない (これは単なる静的コンテンツです)。異なる imacros スクリプトを使用して 2 つの chrome インスタンスをセットアップしました。1 つは wcf サービスを要求するページを呼び出しており、もう 1 つのページは単なる静的コンテンツです。ここで、wcf サービスを要求する最初のページがフリーズすると、別のページもフリーズし、最初のページが解放されると 2 番目のページもフリーズすることがわかります。

Web.Config で何かを再構成する必要がありますか、それとも静的コンテンツをすぐに取得できるようにするために何か他のことをする必要がありますか?

4

5 に答える 5

2

ここには2つの別々の問題があると思います:

  1. WCF サービスを使用するページがフリーズするのはなぜですか
  2. 静的コンテンツ ページがフリーズする理由

WCF サービスを呼び出すページでよくある問題は、WCF クライアントが閉じられていないことです。デフォルトでは、タイムアウトが 1 分の 10 の WCF 接続があります。最初の 10 回の呼び出しは正常に行われ (2 秒実行するとします)、次に 11 回目の呼び出しが行われます。空き wcf 接続がないため、接続がタイムアウトして使用可能になるまで 58 秒待機する必要があります。

静的ページがフリーズする理由について。クライアントがサイトへの接続を 1 つだけ許可している可能性があります。静的ページのリクエストは、wcf サービスを含むページのリクエストが完了するまで送信されません。

IIS のログをチェックして、要求が処理されていることを IIS が報告している時間を確認する必要があります。

于 2012-02-25T15:22:52.503 に答える
1

まぁ、問題ないかも…

これは、ブラウザの同一ドメイン同時リクエスト制限にすぎない可能性があります。
ブラウザーは、最初のページ (WCF ページ) への要求を終了しない限り、2 番目のページ (静的) に要求を送信しません。

試してみてください:
ページごとに異なるブラウザーを使用してください (例: chrome/firefox)。
または、クロムのシークレット ウィンドウで 2 ページ目を開きます (Ctrl + Shift + N)。
または、別のコンピュータから各ページにアクセスしてみてください。

于 2012-02-25T14:30:10.153 に答える
1

このようなシナリオを考えてみましょう: IIS にリクエストを送信すると、アプリは App_Data フォルダーの外にあるファイルを変更、削除、または作成します。これは多くの場合、誤ってアプリのbinフォルダーに配置されたログ ファイルである傾向があります。ファイル システムの変更により、IIS はアプリが変更されたと認識して AppDomain をリロードするため、遅延が発生します。これは問題に当てはまる場合と当てはまらない場合がありますが、ASP.NET アプリではよくある間違いです。

于 2012-02-25T02:21:52.107 に答える
1

これはスレッドの問題だと思います。この MSDN KB 記事には、ASP.NET スレッドの動作を調整する方法に関するいくつかの提案があります。

http://support.microsoft.com/kb/821268

記事から- ...Machine.config ファイルで次のパラメーターを調整して、状況に最適に合わせることができます。

  • maxWorkerThreads
  • minWorkerThreads
  • maxIoThreads
  • minFreeThreads
  • minLocalRequestFreeThreads
  • 最大接続
  • 実行タイムアウト

これらの問題を正常に解決するには、次の手順を実行します。

  • 同時に実行できる ASP.NET 要求の数を CPU あたり約 12 に制限します。
  • Web サービスのコールバックが ThreadPool 内のスレッドを自由に使用できるようにします。
  • maxconnections パラメータに適切な値を選択します。使用する IP アドレスと AppDomains の数に基づいて選択してください。

等...

于 2012-02-16T15:28:25.720 に答える
0

AppFabric を使用してみて、WCF サービスの何が問題なのかを確認できますhttp://msdn.microsoft.com/en-us/windowsserver/ee695849

于 2012-02-21T12:35:13.397 に答える