6

我正在尝试使用ExportToHttpResponse如下方式导出 Crystal ReportDocument:

report.ExportToHttpResponse(exportOptions, HttpContext.Current.Response, true, "test");

当我第一次尝试运行它时,我收到了一个System.Threading.ThreadAbortException. 在阅读了 this question 中的已知错误后ExportToHttpResponse尝试实施建议的解决方法,将语句包装在 try/catch 块中,如下所示:

try
{
    report.ExportToHttpResponse(expOptions, HttpContext.Current.Response, true, "test");
}
catch (System.Threading.ThreadAbortException e)
{
}

据我了解,这应该捕获并忽略错误,然后继续。但是,我仍然得到System.Threading.ThreadAbortException了 catch 语句的右括号。我的问题是为什么即使我显然已经捕获了异常仍然会收到异常,我该如何修复它以便忽略异常?

4

1 回答 1

8

您可以捕获 ThreadAbortException 并调用Thread.REsetAbort方法,以取消异常的冒泡。但是,请记住 response.end 是一个坏主意。每当您可以尝试调用 HttpApplication.CompleteRequest() 并阅读这个 SO问题时,它在这方面对我来说非常有用。

于 2012-09-17T19:44:50.717 回答