0

この問題は私を少し気が狂わせています - 私は今、最高の 3 日間を費やしてきました。もう少し厄介なことに、開発/テスト環境で複製することはできません.本番環境でのみ現れるようです.

シナリオ:

アップローダを起動するページがあります。このアップローダは、内部でフラッシュを使用する YUI2 JavaScript アップローダ コンポーネントです。ファイルはサーバーに正常にアップロードされます。その後、uploadsuccess javascript イベントが発生し、サーバーへの ajax リクエストが発生して、さらに処理を行うことができます。処理にはかなりの時間がかかります (最大 12 分)。これ自体が問題であることは承知していますが、非同期スレッド プロセスを作成するために必要な作業はかなり複雑で、別の日に予定しています。今のところ、要求がタイムアウトしないように、Web.config 内の Web 要求のタイムアウト制限を増やしました。

当社の開発/テスト環境では、プロセスが完了し、応答が受信されます。

私たちの本番環境では、プロセスは完了しますが、応答がありません。:(

問題を見つけようとする私の試み:

コードに非常に多くのログを追加し、asp.net ページのライフサイクルの各イベントが発生したときにログに記録されるログ ポイントを削除しました。

アクションは正しく処理されているようで、各ページ ライフサイクル イベントは最後のイベント (コンテンツ応答がクライアントに送り返される直前に発生する PreSendRequestContent) までヒットしています。しかし、私はまったく何も返ってきませんでした.ブラウザの奇妙な問題ではないことを確認するために、フィドラーを起動して実行していました. 何もない。:(

私は開発者なので、ここでのデバッグに関して選択肢を使い果たしたように感じます。問題は、asp.net スタックを離れた後、クライアントに戻る前の IIS のどこかにあるようです。

私の嘆願:

何が起こっている可能性があるか、またはトラブルシューティングとデバッグを続行するために何ができるかについて、リモートで傾向がある人はいますか?

タグに記載されているように、アプリケーションは ASP.NET アプリケーション (具体的には MVC 2) であり、Windows Server 2008 マシン上の IIS 7.5 Web サーバーで実行されます。

少しでもお力になれることがあれば、末永くよろしくお願いいたします。

敬具; イライラする開発者

4

1 に答える 1

0

わかりました、問題は解決しましたが、リクエストがドロップされた正確な問題とポイントを特定することはできませんでした. これは断続的な問題であり、非常に長時間実行されているリクエスト中にのみヒットしていました。これは、Web にとって常に悪い考えです。

多数のワーカー スレッドを含むバックグラウンド ワーカー キューを作成することで、この問題を解決しました。元のアクションへのリクエストは、ワーカー キューにファームオフされます。また、ユーザーがこれらのアイテムの進行状況を追跡し、失敗したアイテムを再試行できるステータス ページも公開しました。

うまく機能しているようで、UI の応答性も向上しています。これは常に良いことです。

于 2012-08-28T22:11:01.377 に答える