这个问题ServerIsTooBusy

serveristoobusy  时间:2021-02-26  阅读:()

http://bbs.faloo.com/doc/104990/1.html

当你访问博客园出现“Server Error in'/'Application.Runtime Error.”的错误时你知道这个错误的背后是什么吗?你也许会想博客园怎么不设计个定制错误页面这样的错误页面让访问者不知所措只能抱怨“服务器出问题了”。当出现这个问题时我急啊!真想站到互联网上拿着大喇叭对大家喊我刚更新了程序或者修改了web.config的设置 asp.net在进行首次编译在编译的同时还要处理大量的请求忙不过来只能拒绝请求实际的错误信息是"Server Too Busy"错误来自HttRuntime的Rej ectRequestInternal方法。你也许会说用customErrors页面处理一下啊可是HttRunti me 已经拒绝了这个请求重定向到defaultRedirect定制错误页面还是被拒绝结果就出现“S erver Error in'/'Application.RuntimeError.”错误。这个问题困扰我很长时间当更新程序(或者修改web.config的设置、应用程序池回收、 IIS重启)时就会出现这个问题尤其是访问高峰期要几分种才能恢复正常郁闷!要是在这时显示一个友好的错误显示页面那该多好啊!今天晚上更新程序时又遇到这个问题。我再次下决心要解决这个问题。

要解决问题首先要分析出为什么会出现问题。既然是HttRunti me抛出的异常那就从HttRuntime下手。怎么下手呢用强大的Reflector工具微软这点做的不错很多.NET类库都可以通过Re fl ector工具查看源代码。通过分析HttRunti me的源代码我找到了问题的原因这里我简单地描述了一下

做人要厚道转载请注明来自飞卢(faloo.com)

Re:定制“Server Too Busy”错误信息

接着就是异常的处理 向客户端浏览器显示异常信息调用Fini shReque st,在Fini sh中调用context.Re s p ons e.Rep ortRuntimeError(e, true)显示异常信息 Rep ortRuntimeError会根据web.config中的CustomErrors设置决定是否重定向到de faultRedirect。

当你设置CustomErrors的defaultRedirect来定制处理异常信息时 如果遇到"Server_too_busy"就麻烦了重定向到错误处理页面后又被HttpRuntime拒绝拒绝后又被重定向到defaultRedirect页面HttpRuntime 《———》HttpRuntime..... 似乎进入了一种恶性循环。原来问题有这么严重写文章之前我还没想到写到这我才发现。这样不停的来回CPU岂不累死当CPU累的不行时就随便抛出一个其他异常:)也就是“ServerError in'/'Application.Runtime Error.”这个异常我没找到在哪抛出的。难道在首次编译时 CPU占用很高与这个也有关系。我更新博客园服务器上的程序时要几分钟才能恢复正常而这时CPU基本是满负荷工作难道也是这个问题引起我想明天在访问高峰期测试一下就能得到证实。这似乎是设计者的一个疏忽 正确的做法应该是对于"Server_too_busy"异常不管用户是否设置了 defaultRedirect,都不应该去重定向到defaultRedirect而是直接向客户端发送异常信息这是一个很特殊的情况设计者在设计时可能没考虑到。

Re:定制“Server Too Busy”错误信息

在写文章之前我并没有发觉这个问题如此严重。但我想到了一个另类的解决方法既然发生"S erver_to o_busy"时 HttpRuntime不会处理任何请求那该Web应用程序中再怎么处理也是无济于事的 我们从其他地方找突破口发生"Server_too_busy"异常时重定向到de faultRe direct会带来严重的问题但却可以利用这一点把问题化解为解决方法这个解决方法就是将defaultRe direct设置为另外一个网站的地址既然这个网站拒绝处理请求那我把请求转给另外一个网站总可以吧 由另外一个网站来显示友好的错误信息这样不仅解决了定制“Server Too Busy”错误信息的问题而且可以减少对主网站的请求让主网站有更多的时间处理当前的任务。比如博客园现在就建立了一个sorry.cnblogs.com的站点将de faultRe direct设置为这个站点。这个方法另类吧!

有了这个方法我们以后就不怕"Server_too_busy"了可以轻松更新程序、修改web.config,只要将defaultRe dire ct的页面设计得让大家觉得等几分钟也不难受就行了。比如放一段美妙的音乐、笑话、搞笑图片、激情电影 当然过份的网站也许会放广告。

RackNerd美国大硬盘服务器促销:120G SSD+192TB HDD,1Gbps大带宽,月付$599,促销美国月付$服务器促销带宽

racknerd怎么样?racknerd最近发布了一些便宜美国服务器促销,包括大硬盘服务器,提供120G SSD+192TB HDD,有AMD和Intel两个选择,默认32G内存,1Gbps带宽,每个月100TB流量,5个IP地址,月付$599。价格非常便宜,需要存储服务器的朋友可以关注一下。RackNerd主要经营美国圣何塞、洛杉矶、达拉斯、芝加哥、亚特兰大、新泽西机房基于KVM虚拟化的VPS、...

buyvm迈阿密机房VPS国内首发测评,高性能平台:AMD Ryzen 9 3900x+DDR4+NVMe+1Gbps带宽不限流量

buyvm的第四个数据中心上线了,位于美国东南沿海的迈阿密市。迈阿密的VPS依旧和buyvm其他机房的一样,KVM虚拟,Ryzen 9 3900x、DDR4、NVMe、1Gbps带宽、不限流量。目前还没有看见buyvm上架迈阿密的block storage,估计不久也会有的。 官方网站:https://my.frantech.ca/cart.php?gid=48 加密货币、信用卡、PayPal、...

妮妮云(100元/月)阿里云香港BGP专线 2核 4G

妮妮云的来历妮妮云是 789 陈总 张总 三方共同投资建立的网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑妮妮云的市场定位妮妮云主要代理市场稳定速度的云服务器产品,避免新手购买云服务器的时候众多商家不知道如何选择,妮妮云就帮你选择好了产品,无需承担购买风险,不用担心出现被跑路 被诈骗的情况。妮妮云的售后保证妮妮云退款 通过于合作商的友好协商,云服务器提供2天内全额退款,超过2天不退款 物...

serveristoobusy为你推荐
行业关键词关键词有哪些分类?公章制作如何制作公章不兼容Google play 服务提示不兼容怎么办?xv播放器下载除了迅雷看看播放器还有什么播放器支持xv格式的视频?奇虎论坛奇虎问答是什么idc前线穿越火线河北的服务器好卡 有人知道怎么回事嘛 知道的速回机械键盘轴机械键盘蓝轴有什么作用安全漏洞什么是安全漏洞攻击??宽带接入服务器互联网的接入方式有哪几种?声母是什么22个声母是什么
mysql虚拟主机 购买域名 cn域名 cn域名个人注册 liquidweb kdata 账号泄露 卡巴斯基试用版 空间合租 umax120 华为云服务登录 1元域名 备案空间 丽萨 东莞服务器托管 石家庄服务器托管 黑科云 asp空间 美国服务器 侦探online 更多