C# 错误:System.Threading.ThreadAbortException中的异常异常异常:正在中止线程
下载模板时,我收到以下错误消息 我已尝试而不是响应。刷新();使用Response.End();。但同样的错误C# 错误:System.Threading.ThreadAbortException中的异常异常异常:正在中止线程,c#,asp.net,multithreading,C#,Asp.net,Multithreading,下载模板时,我收到以下错误消息 我已尝试而不是响应。刷新();使用Response.End();。但同样的错误 Error: Excepiton in Download:System.Threading.ThreadAbortException: Thread was being aborted. at System.Threading.Thread.AbortInternal() at System.Threading.Thread.Abort(Object stateInfo) at Sys
Error: Excepiton in Download:System.Threading.ThreadAbortException: Thread was being aborted.
at System.Threading.Thread.AbortInternal()
at System.Threading.Thread.Abort(Object stateInfo)
at System.Web.HttpResponse.End()
有没有办法避免上述例外情况
代码
提前感谢。如此处所述:
替换此:HttpContext.Current.Response.End()代码>
为此:
执行链,并直接执行EndRequest事件
他回答说:
这是一个线程异常;这是一个特殊的例外
在每个捕捉块结束时自动重新抓取,除非
调用Thread.ResetAbort()
ASP.Net方法,如Response.End或Response.Redirect(除非
pass false)抛出此异常以结束当前
页您的someFunctionCall()可能正在调用其中一个
方法
ASP.Net本身处理此异常并调用ResetAbort以
继续处理
现答覆如下:
替换此:HttpContext.Current.Response.End()代码>
为此:
执行链,并直接执行EndRequest事件
他回答说:
这是一个线程异常;这是一个特殊的例外
在每个捕捉块结束时自动重新抓取,除非
调用Thread.ResetAbort()
ASP.Net方法,如Response.End或Response.Redirect(除非
pass false)抛出此异常以结束当前
页您的someFunctionCall()可能正在调用其中一个
方法
ASP.Net本身处理此异常并调用ResetAbort以
继续处理
可能是重复的,这就是Response.End所做的。如果这不是您想要的,那么您可能必须检查应用程序的设计-很可能,您在请求结构中做了一些严重的“意大利面”。可能是重复的,这就是响应。End
所做的。如果这不是您想要的,那么您可能必须检查应用程序的设计-很可能,您在请求结构中做了一些重要的工作。谢谢您的回答:)谢谢您的回答:)
private void DownloadFile(string filePath, string downloadFileName)
{
Response.ContentType = "application/ms-excel";
Response.AddHeader("content-disposition", "attachment; filename=" + downloadFileName);
Response.TransmitFile(filePath);
// Response.Flush();
Response.End();
}
HttpContext.Current.Response.Flush(); // Sends all currently buffered output to the client.
HttpContext.Current.Response.SuppressContent = true; // Gets or sets a value indicating whether to send HTTP content to the client.
HttpContext.Current.ApplicationInstance.CompleteRequest(); // Causes ASP.NET to bypass all events and filtering in the HTTP pipeline**