代码之家  ›  专栏  ›  技术社区  ›  FrantiÅ¡ek Žiačik

如何处理内容处置错误

  •  0
  • FrantiÅ¡ek Žiačik  · 技术社区  · 14 年前

    我应该如何处理在发送 内容处置 附件的标题?我试图在服务器上生成一个报告并将其作为文件发送,但是如果在报告生成过程中发生异常,则错误消息本身会发送到浏览器,浏览器仍然将其作为文件的内容,并显示“另存为”对话框。用户无法知道生成报告时出错,请立即保存格式错误的文件。

    是否有方法取消此标题的响应并重定向到错误页?或者我还能做什么来通知用户错误?

    可能我可以先生成报告,并且只有在没有错误的情况下才发送头,但是我希望报告直接呈现到响应输出流,这样它就不需要保留在内存中。

    这是我的代码:

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

    谢谢你的建议

    1 回复  |  直到 14 年前
        1
  •  1
  •   Julian Reschke    14 年前

    这并不是针对内容处置的。

    一旦开始发送响应正文,就不能更改HTTP状态。如果此时发生错误,我所知道的唯一发出错误信号的方法就是关闭连接。