0

いくつかの計算を行い、ファイルをクライアントに返すWebアプリケーションがあります。コンピューティングにかかる​​時間が5分未満の場合、IEとChromeですべてが正常に機能し、ファイルが取得されますが、コンピューティングに5分以上かかる場合、IEは「InternetExplorerはウェブページを表示できません」というメッセージでタイムアウトします。サーバーからのファイル。

WinInetのKeepAliveTimeout、ReceiveTimeout、ServerInfoTimeoutなどのレジストリ設定を変更しようとしましたが、役に立ちませんでした。[接続の問題の診断]ボタンをクリックすると、「WindowsがHTTPerrorメッセージを受信しました:403(禁止)」というメッセージが表示されます。これは、資格情報なしでサイトに再度アクセスしようとして失敗したためだと思います。fiddlerを使用すると、リクエストは504ステータスで終了し、「ReadResponse()failed:サーバーはこのリクエストに対する応答を返しませんでした」というメッセージを表示します。興味深いことに、Fiddlerが実行されているとChromeでさえタイムアウトになることをかつて観察しました(ただし、再実行によってこれを確認していません)。

これは、MVCフレームワークを使用するASP.NetWebアプリケーションです。

私はかなりの時間を費やしましたが、これに対する解決策を見つけることができませんでした。どんな有用なポインタでも本当にありがたいです。

4

1 に答える 1

1

KB181050から

通常、長いプロセスを小さな部分に分割できます。または、サーバーはステータスデータを返し、プロセスについてユーザーを更新できます。さらに、メッセージベースまたは非同期のアプローチを持つ長いサーバープロセスを作成して、ジョブが送信された直後にユーザーに戻り、長いプロセスが終了した後にユーザーに通知することができます。

つまり、を作成し、サーバーがリクエストを受け入れ<div><div>直後に「処理中」の値を入力します。次に、ajaxまたはjavascriptを使用<div>して、処理が終了するたびに結果で同じものを更新します。

于 2012-05-24T01:11:00.997 に答える