1

IIS7.5には従来のASPWebサイトがあります。

ユーザーの反応がランダムに遅くなっています。その場合、ユーザーは数分間何もできなくなり、非常にイライラします。

たとえば、ホームページを開いてカテゴリを数回クリックすると、Webサイトが応答を停止するだけです。

サイトが応答を停止するときのルールに気づきませんでした。常に正常に動作している場合もあれば、停止している場合もあります。

応答が遅い場合は、数分待ってからページを取得できます。ページの読み込みを停止してページを更新しようとしましたが、役に立ちません。この場合、ページを更新できず、他のページに移動できません。サイトの各ページが応答していません。

しかし、他のブラウザを開いた場合、たとえばChromeを使用してIEを開いた場合、新しいブラウザのサイトは再び高速になります。

私の唯一の手がかりは、クライアント側でASPセッションCookieを削除すると、同じブラウザでページの読み込みが再び高速になることです。したがって、これは明らかにASPセッションCookieに関連するものです。IISまたはASPエンジンは、何らかの理由でASPセッションをブロックできますか?

サイトをすばやくクリックすると、応答が遅くなる可能性が高くなることに気付きました。数回の高速クリックの後、サーバーが何らかの理由でそのセッションを拒否したように見えますか?

また、それが有用で問題に関連しているかどうかわからないので、多くの異なるASPセッションCookieをよく目にします。ブラウザのユーザーごとに1つのセッションCookieのみである必要があると思いますが、値が異なるいくつかの異なるセッションCookieが表示されます。

誰かが似たようなものを見たことがありますか?これらの時折遅い応答を解決する方法はありますか?

ありがとう!

編集: 応答が遅い場合、空のASPページも読み込めないことがわかりました(Response.Write "working"だけで、1行のコードでページを作成しました)。もちろん、そのページを別のブラウザで開くと、すぐに機能します。問題が発生すると、Webサイトはそのセッションの間だけハングします。他のブラウザで同じページを試したり、同じブラウザでセッションCookieをクリアしたりすると、ページの読み込みが速くなります。

4

3 に答える 3

0

そのような問題のために、私は(私がインクルードに持っている)大まかな関数を書いて、問題のページに入れました。この関数は、タイムスタンプ、タイマー(ミリ秒の範囲で時間をキャプチャするため)、およびその他の変数をテキストファイルに書き込みます。

次に、疑わしいコードの各セクションの前後で関数を呼び出し、数日後にもう一度関数を呼び出して、見つかったものを確認します。

通常のタイムスタンプはミリ秒スケールで時間をキャプチャするのに役に立たないため、この一部としてtimer()を使用することを忘れないでください

于 2013-04-22T12:01:41.453 に答える
0

私は答えを見つけたと思います。ASP Webサイトは、いくつかのカスタムCOMコンポーネントを使用しています。

これらのコンポーネントのいくつかは、ディスクにログファイルを書き込んでいます。これらのログは.txtファイルです。

ログファイルは時間の経過とともに大きくなり、1つは4GBを超えていました。どういうわけか、大きなファイルに書き込むと、いくつかのページを読み込んだ後、サーバーの応答が遅くなりました。興味深いことに、新しいブラウザウィンドウは、他のブラウザでハングしているときにページをすばやく開くことができます。

そこで、ログファイルに書き込む部分をASPコードから削除したところ、ウェブサイトがハングすることなく動作するようになりました。

皆さんありがとう!

于 2013-05-10T16:31:53.167 に答える
0

私もこの問題を抱えています。データベースやカスタムActiveXオブジェクトがないので、すべてのアクションの直後にすべてのオブジェクト(scripting.filesystemobjectなど)をクリーンアップしますが、セッションコードページなどを設定できるように、アプリケーションでセッションを有効にします。サーバーが大量のaspsessionidCookieを生成していることに気づきました。つまり、ページがハングするまでに、50個のaspsessionidCookieが存在する可能性があります。IISは、セッションが有効になっていて、それらについて私ができることは何もない場合にこれらを生成します。20〜30分ごとに、私のセッションでのみページが突然ハングします。別のブラウザインスタンス(別のマシンやプライベートブラウジングモードなど)を起動すると、再度正しく応答します。ブラウザを5分間放置すると、ブラウザが適切に応答し始めます。ループを使用して、response.isclientconnectedを確認し、応答を実行できることを知っています。

于 2013-10-09T07:50:48.333 に答える