0

添付ファイルのContent-Dispositionヘッダーを送信した後に発生する例外をどのように処理する必要がありますか?サーバーでレポートを生成してファイルとして送信しようとしていますが、レポートの生成中に例外が発生した場合、エラーメッセージ自体がブラウザに送信され、ファイルのコンテンツとして取得され、[名前を付けて保存]が表示されます。ダイアログ。ユーザーはレポートの生成中にエラーが発生したことを知ることができず、現在間違った形式のファイルを保存しています。

このヘッダーで応答をキャンセルしてエラーページにリダイレクトする方法はありますか?または、エラーについてユーザーに通知するために他に何ができますか?

おそらく最初にレポートを生成でき、エラーが発生しなかった場合にのみヘッダーを送信しますが、レポートを応答出力ストリームに直接レンダリングして、メモリに保持する必要がないようにします。

これが私のコードです:

this.Response.ContentType = "application/octet-stream";
this.Response.AddHeader("Content-Disposition", @"attachment; filename=""" + item.Name + @"""");
this.Response.Flush();

GenerateReportTo(this.Response.OutputStream); // Exception occurs

提案をありがとう

4

1 に答える 1

1

これは Content-Disposition に固有のものではありません。

応答本文の送信を開始すると、HTTP ステータスを変更することはできません。この時点でエラーが発生した場合、エラーを通知する方法として私が知っている唯一の方法は、接続を閉じることです。

于 2010-05-18T09:57:46.783 に答える