发送附件的Content-Disposition header 后,应如何处理发生的异常?我正在尝试在服务器上生成报告并将其作为文件发送,但是如果在报告生成期间发生异常,则错误消息本身将发送到浏览器,该浏览器仍将其作为文件内容并显示另存为对话。用户不知道有一个错误生成报告,现在以错误的格式保存文件。
有没有办法取消此 header 的响应并重定向到错误页面?或者我还可以做些什么来通知用户该错误?
可能我可以先生成报告,并且只有在没有错误的情况下才发送标题,但是我希望报告直接呈现到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
感谢您的任何建议
最佳答案
这并不是真正针对内容处置。
一旦开始发送响应正文,就无法更改HTTP状态。如果此时发生错误,那么我知道的唯一一种发出错误信号的方法就是关闭连接。
关于c# - 如何处理内容处置错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2853321/