论坛首页 编程语言技术论坛

关于ThreadAbortException

浏览 3147 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-07-16  
最近一段时间用spring.net+nhibernate+codesmith做一个国外的项目。
     一开始没有用spring.net的时候都好好的,用上了spring以后,突然发现在vs.net 2005的控制台中出现了很多System.Thread.ThreadAbortException,虽然对程序运行没有什么影响,但总感觉不爽,而且担心会出现thread dead/lock问题。
     于是就在google上搜索,终于找到微软的一个kb里面有提到使用 Response.End、Response.Redirect 或 Server.Transfer 方法,将出现 ThreadAbortException 异常,里面提到解决方案为
    
对于 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);

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

    于是回去修改了一下,发现那些个ThreadAbortException果真都不见了。哪个happy啊。
     后来又详细的看了一下那个文章发现最后一段是这样的:
    
   
这篇文章中的信息适用于:
    • Microsoft ASP.NET 1.1 
    • Microsoft ASP.NET 1.0 
   

  
   问题就在于,这个对策是对应于1.x的版本的,我用的是2.x的版本,为什么也会出现这样的问题呢,难道是因为加入了spring.net以后导致了页面调用的时候使用了1.x的api?
   有点不解,请知道的兄弟帮我看看是为什么?
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics