2010-05-17 38 views
0

我應該如何處理髮送Content-Disposition頭附件後發生的異常?我試圖在服務器上生成報告並將其作爲文件發送,但是如果報告生成過程中發生異常,則錯誤消息本身會發送到瀏覽器,該瀏覽器仍將其作爲文件的內容並顯示另存爲對話。用戶無法知道生成報告時出錯,現在保存格式錯誤的文件。如何處理與內容處置有關的錯誤

有沒有辦法取消這個頭的響應並重定向到錯誤頁面?或者我還可以做什麼來通知用戶有關錯誤?

也許我可以首先生成報告,並且只有在發送頭文件時沒有錯誤,但我希望報告直接呈現給Response輸出流,以便它不需要留在內存中。

這裏是我的代碼:

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

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

感謝您的任何建議

+0

水晶球? – 2010-05-17 22:27:45

回答

1

這是不是真的具體到內容處置。

一旦開始發送響應正文,就無法更改HTTP狀態。如果在這個時候發生錯誤,我知道發送信號錯誤的唯一方法是關閉連接。