c#.net的网站出现“正在中止线程””异常的原因和解决方法

出现“正在中止线程”异常通常都是由于以下三种原因导致引起,给出解决方案如下:

解决方案:

1、针对Response.End,调用 HttpContext.Current.ApplicationInstance.completeRequest() 方法而不是 Response.End 以跳过 Application_EndRequest 事件的代码执行。

2、针对Response.Redirect,请使用重载 Response.Redirect(String url, bool endResponse),该重载对 endResponse 参数传递 false 以取消对 Response.End 的内部调用。例如: Response.Redirect ("nextpage.aspx", false); 如果使用此替代方法,将执行 Response.Redirect 后面的代码。

3、针对Server.Transfer,请改用 Server.Execute 方法。

另解(源自网络):

如果是方法1在IIS 5.5下只要删除就OK了,不过在IIS 6.0和7.0 下又会报出另外一个错误“与远程主机通信时发生错误。错误代码是 0x8007xxxx。”。在网上翻查了一翻资料后,终于找到了解决方法:就是将Response.End();换成Response.Close();帮助对Response.Close()的解释是关闭到客户端的连接而Response.End()的解释是停止该页的执行,并引发Application_EndRequest。也就说用Response.End()程序就直接停止后面的工作了转而触发Application_EndRequest,那么当程序在后面还有代码需要运行时,程序就会抛出ThreadAbortException的异常。

还有需要了解的就是End方法在不抛出异常时还会调用flush的方法。

接着来,Response.Close()方法是关闭了连接,也就说程序顺利执行完了所有代码后关闭了连接。对于只运行Flush()后报出的“与远程主机通信时发生错误”,我的理解是当执行了Flush()后在底层马上开始向客户端发送数据,但是Flush()貌似只能指示程序开始连接发送,却没有停止关闭的标识,导致程序报出异常。当然这是在IIS 7.0下会出错(可能在IIS 7.0 开始在调用Flush()后需要显示关闭socket连接)。所以以后再在用完Flush()后最好加上Close()。就像数据库连接一样,用完就关闭连接。

时间: 2024-11-09 16:24:02

c#.net的网站出现“正在中止线程””异常的原因和解决方法的相关文章

Response.End()、Response.Redirect()、Server.Transfer()导致“正在中止线程”异常的问题

try {     if (true)           {                Response.Write("测试1");                Response.End();            }    else            { if (true)                {                     Response.Write("测试2");                     Response.E

域名解析后网站却不能访问的原因及解决方法?

众所周知,域名解析的过程非常复杂,是一个全球域名系统逐级更新的方式,加上用户上网调用的DNS服务器也有缓存,只有缓存过期重新读取根数据库的解析记录,解析的IP地址才能被浏览者看到.但是有些用户会遇到域名解析之后,网站却不能访问.今天宵云小编就针对这个问题以及有哪些解决方法来个大家总结一下. 一般情况下,域名解析后却不能访问的原因: 1.域名解析提交后,一般不会立即生效,需要等待一段时间才能访问. 2.域名解析时,相关参数设置错误. 3.如果租用的国内服务器,网站备案未成功被系统取消域名绑定. 4

谈浅百度惩罚网站的原因与解决方法

原因1)新站百度"审核期"内遭到多次大幅度修改! 一般刚刚上线的新站基本上是没有什么权重的,而在这个时期内我们站长一定要保证网站的"稳定",不能让网站出现任何问题,如查人在短期内多次修改网站的话,百度就一定会对你的网站作出些惩罚,一般表现为降权,或是不更新也不收录,要是严重点还有可能会被百度拉进沙盒! 解决方法如果网站被百度惩罚的原因是近期内多次修改网站,那么唯一的解决方法继续正常更新网站,或后保证它的稳定,不要在对网站修修改改的,只要你保证网站"稳定&q

网站打不开的6种现象及解决方法

★出现Bad Request(Invalid Hostname) 原因:2003系统的虚拟主机IIS处于停止状态的时候会有这种提示,检查后台主机状态,一般这种情况主机状态显示为“暂停中”或者“管理员停止”,如果主机状态处于“运行中”,一般是绑定了不规则的域名导致IIS停止. ★ 出现No web site is configured at this address 原因:2000系统的虚拟主机IIS处于停止状态的时候会有这种提示,检查后台主机状态. ★ 出现Directory Listing D

SharePoint 2010升级到sharePoint 2013后,人员失去对网站的权限的原因及解决方法。The reason and solution for permission lost after the upgrading

昨天碰到了一个问题,一个网站在从SharePoint 2010升级到SharePoint 2013后,人员都不能登录了,必须重加赋权,人员才能登录,这样非常麻烦. 原因:是认证方式的问题.在SharePoint 2010中,通过管理中心新建web application的时候,就会发现提供了两种不同的认证方式,第一种是classic auth(也就是我们通俗的称为windows 认证,其实这种叫法也不全面),另一种是claim base auth. 而当时claim base的认证方式微软还没有

关于线程间操作无效: 从不是创建控件“xx”的线程访问它,错误解决方法

这是一个线程不安全的问题.跨线程操作问题. 比如我们需要在线程中改变textbox的文本,textbox的name是txtShowMsg 第一种方法(不推荐使用) 在窗体构造函数中写Control.CheckForIllegalCrossThreadCalls =false; 这种方法,只是不去检查跨线程的安全性. 第二种方法(推荐使用) 第一步:定义一个委托 /// <summary> /// 委托改变 Text的值 /// </summary> /// <param na

从根本分析网站降权的原因与解决方法

网站降权了该怎么办?这个是做seo优化人员的经常面临与遇到的问题,不知道该从何分析与着手,下面小编就带着大家来分析原因并解决网站降权:        网站优化从两方面着手,站内优化与站外优化,首先我们先从站内优化开始分析: 1.锚文本过分 许多站长喜好做锚文本和全站毗邻,每更新一篇文章,见关键词就做锚文本,见主页关键词就做全站毗邻,至使蜘蛛在抓取日志的时分,有区分优化过速,刻意搜刮引擎优化的猜忌,被罚降权. 解决方法: 淘汰锚文本的数目,通常1000字的文章,放10个没关系.尚有,放关键词超毗邻

c#中 线程访问控件的解决方法 可直接调用此方法

问题 由于在初学c#的时候 使用了 线程委托去执行函数,是为了不让软件窗体假死.所以使用下方代码: Thread th = new Thread(Getform); //创建线程 th.Start(); 在使用前需要引入 : using System.Threading; 但是,在Getform 函数中,我调用了修改窗体控件内容的命令. textbox.text="假"; 直接报错了. 线程间操作无效: 从不是创建控件"textbox"的线程访问它 好吧.查找资料,

BC网站搭建开发PHP版搭建开发致命错误的解决方法

原创文章:BC网站搭建开发PHP版搭建研发开发致命错误的解决方法主营产品BC/CP/SSC/系统彩/菠菜网站搭建,BC网站制作开发,BC网站AGbbinMG接口对接,菠菜网站制作,CP网站制作,SSC建站开发,CP平台系统彩,传统彩等平台建站制作.一站式开发制作[包域名.海外服务器.APP封装.后期维护.前期调试.反水接水,游戏接口,支付对接,在线客服接口]一站效率给客户一个全新体验,简单方便直接运营,专业的售后效力保证,处理客户后顾之忧. 解决:调用自己写的方法要加$this-> 用了一段时间