2010-05-17 24 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状态。如果在这个时候发生错误,我知道发送信号错误的唯一方法是关闭连接。