c# - 如何处理内容处置错误

标签 c# asp.net http error-handling content-disposition

发送附件的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/

相关文章:

c# - 这个科学计数法在 C# 中的正则表达式如何?

c# - 使用 HtmlAgilityPack 解析未从网页关闭的标签

c# - ASP.NET 中的静态方法问题

c# - 跨页面传递值 ASP.net

c# - 使用 contains 时未将对象引用设置为 LINQ 中的对象实例

angular - 从 Angular 中的 .subscribe 获取订阅数据

c# - 将模型信息添加到 swagger 输出

c# - 在 C# 中读取 mbox 文件

http - JMeter 给出的响应消息为 "Non HTTP response code: java.net.SocketException/Non HTTP response message: Connection reset"

javascript - 如何在 NodeJS 中持续轮询 API 以获得特定结果?