如何处理在为附件发送内容处理标头后发生的异常?我试图在服务器上生成报表并将其作为文件发送,但是如果在报表生成过程中出现异常,则错误消息本身将发送到浏览器,浏览器仍然将其作为文件的内容并显示“另存为”对话框。用户不能知道有一个错误的生成报告,保存的文件是错误的格式。
是否有办法取消这个标题的响应并重定向到错误页面?或者我还能做些什么来通知用户错误呢?
可能我可以首先生成报告,并且只有在没有错误的情况下才能发送标头,但是我希望报表呈现直接呈现到响应输出流,这样它就不需要留在内存中了。
这是我的代码:
this.Response.ContentType = "application/octet-stream";
this.Response.AddHeader("Content-Disposition", @"attachment; filename=""" + item.Name + @"""");
this.Response.Flush();
GenerateReportTo(this.Response.OutputStream); // Exception occurs谢谢你的建议
发布于 2010-05-18 09:57:46
这并不是专门针对内容处理的。
一旦开始发送响应体,就不能更改HTTP状态。如果在此时发生错误,我所知道的发出错误信号的唯一方法就是关闭连接。
https://stackoverflow.com/questions/2853321
复制相似问题