1

私はAsp.netのジュニア開発者であり、興味深い仕事をしました。私はWebサービスをホストしています。クライアントがデータベースにデータを保存するメソッドを呼び出すと、成功するまでに長い時間がかかる場合があります。通常は約5秒、場合によっては30秒以上。どこから始めたらいいのかわからない。

私には、それは次の原因で発生する可能性があるようです2 reasons

  1. クライアントのインターネット接続が不良です。
  2. データベースが過負荷になっています

しかし、どうすればそれを証明したり、実際の原因を見つけたりできますか?

4

4 に答える 4

0

WCF トレースとデータベース トレースを実行します。それらの 2 つの間で、それがどちらかであるかどうかを確認できるはずです。

于 2013-02-07T07:28:28.107 に答える
0

2003 以降の Windows Server への展開とホスティングについて話す場合、IIS で Web サービスと Web アプリケーションを監視およびトラブルシューティングするための優れた機能を備えた AppFabric をインストールする可能性があります。

監視は、IIS 管理の UI と web.config を介して構成できます。また、デフォルトの IIS トレース機能よりも優れています。

それを達成する方法と私が意味することは、ここでよりよく説明されています:

http://msdn.microsoft.com/en-us/library/ee677277.aspx

また、データベースが特に読み取り操作で過負荷になっている場合に、AppFabric 分散キャッシュを使用する機能もあります。

最初に、リクエストの実行時間を確認してください。次に、プロファイルかデータベースでないかを決定します。保存後のブロック、おそらく非同期応答、または保存が完了したときにクライアントが常に待機する必要がないように、アーキテクチャをそのように設計するようにしてください。クライアントは後で保存ステータスを尋ねることができ、あなたは彼をブロックしません。とにかく、アーキテクチャまたは必要な要件について正確で詳細を知ること。

于 2013-02-07T09:12:40.343 に答える
0

1 つのオプションは、クライアントがヒットしている Web サービス コードにデバッグすることです。

デバッグ ポイントに到達するまでに時間がかかる場合は、クライアントに問題があります。

デバッグにすぐにヒットする場合は、コードをステップ実行して、どのステップに時間がかかっているかを確認します。

于 2013-02-07T07:43:15.600 に答える
0

SQL 側でプロファイルを作成して、クエリの実行を確認してください。また、サーバーでwiresharkを使用して、どのようなリクエストが送信され、しばらくすると何が起こるかを確認できます。ループのサービスのコードを確認します (そのパラメーターが予期された値でない場合、いくつかのパラメーターをチェックする再帰的なチェックがある可能性があります - フリーズして再度チェックします)。

于 2013-02-07T07:32:51.133 に答える