ASP.NET"正在中止线程"错误原因

转载 2011年01月17日 15:48:00

ASP.NET"正在中止线程"错误原因

症状

如果使用 Response.EndResponse.Redirect Server.Transfer 方法,将出现 ThreadAbortException 异常。您可以使用 try-catch 语句捕获此异常。

PRB:在使用 Response.EndResponse.Redirect Server.Transfer 时出现 ThreadAbortException

症状

如果使用 Response.EndResponse.Redirect Server.Transfer 方法,将出现 ThreadAbortException 异常。您可以使用 try-catch 语句捕获此异常。

原因

Response.End 方法终止页的执行,并将此执行切换到应用程序的事件管线中的 Application_EndRequest 事件。不执行 Response.End 后面的代码行。

 

此问题出现在 Response.Redirect Server.Transfer 方法中,因为这两种方法均在内部调用 Response.End

解决方案

要解决此问题,请使用下列方法之一:

     对于 Response.End,调用 HttpContext.Current.ApplicationInstance.CompleteRequest 方法而不是 Response.End 以跳过 Application_EndRequest 事件的代码执行。

     对于 Response.Redirect,请使用重载 Response.Redirect(String url, bool endResponse),该重载对 endResponse 参数传递 false 以取消对 Response.End 的内部调用。例如:

  Response.Redirect ("nextpage.aspx", false);

           

如果使用此替代方法,将执行 Response.Redirect 后面的代码。

     对于 Server.Transfer,请改用 Server.Execute 方法。

 

 

ASP.NET"正在中止线程"错误原因

最近做的系统中老出现的一些问题不太明白,在使用 Response.End、Response.Redirect 或 Server.Transfer 时出现 ThreadAbortException , ...

ASP.NET 错误: 您的主机中的软件中止了一个已建立的连接

Q群网:http://www.groupsrecord.com/ “/”应用程序中的服务器错误。 您的主机中的软件中止了一个已建立的连接。 说明: 执行当前 Web 请求期间,出现...

[ASP.NET MVC 大牛之路]03 - C#高级知识点概要(2) - 线程和并发

我也想过跳过C#高级知识点概要直接讲MVC,但经过前思后想,还是觉得有必要讲的。我希望通过自己的经验给大家一些指引,带着大家一起走上ASP.NET MVC大牛之路,少走弯路。同时也希望能和大家一起交流...

《ASP.NET本质论》 线程基础

线程基础         在单CPU的情况下,显然计算机同时只能执行一个程序,早期的DOS操作系统就是单任务操作系统,在那个年代,我们在运行一个程序的时候,就不能再运行第二个程序,必须退出当...
  • sky1069
  • sky1069
  • 2011年08月05日 19:42
  • 675

[ASP.NET MVC 大牛之路]03 - C#高级知识点概要(2) - 线程和并发

[ASP.NET MVC 大牛之路]03 - C#高级知识点概要(2) - 线程和并发 我也想过跳过C#高级知识点概要直接讲MVC,但经过前思后想,还是觉得有必要讲的。我希望通过自己...
  • Litt_J
  • Litt_J
  • 2014年12月30日 12:02
  • 1097

七天学会ASP.NET MVC (六)——线程问题、异常处理、自定义URL

本节又带了一些常用的,却很难理解的问题,本节从文件上传功能的实现引出了线程使用,介绍了线程饥饿的解决方法,异常处理方法,了解RouteTable自定义路径 。系列文章七天学会ASP.NET MVC (...

七天学会ASP.NET MVC (六)——线程问题、异常处理、自定义URL

目录 实验27——添加批量上传选项 关于实验27 实验27存在的问题 解决方法 实验28——解决线程饥饿问题 实验29——异常处理—显示自定义错误页面 关于实...

使用ASP.NET创建线程实例教程

使用 ASP.NET 创建一个线程的实现方法其实非常简单,只需将其声明并为其提供线程起始点处的方法委托即可实现。创建新的线程时,需要使用 Thread 类,Thread 类具有接受一个 ThreadS...

导致Asp.Net站点重启的10个原因

Asp.Net站点有时候会莫名其妙的重启,什么原因导致的却不得而知,经过一番折腾后,我总结了导致Asp.Net站点重启的10个原因 1. 回收应用程序池会导致站点重启,记录的原因是: Hostin...

在ASP.NET中使用IHttpHandler处理请求(如自实现AJAX)时,无法获得Session(或者说是Session 为 null)的原因及解决方法

本文以CSDN以前的一个帖子为线索,结合自己的使用经历,讨论了“使用IHttpHandler得到Session时总是为null”的原因,并给出了解决的方法。...
  • lslxdx
  • lslxdx
  • 2011年04月07日 20:32
  • 1093
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ASP.NET"正在中止线程"错误原因
举报原因:
原因补充:

(最多只允许输入30个字)