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的页面设计得让大家觉得等几分钟也不难受就行了。比如放一段美妙的音乐、笑话、搞笑图片、激情电影 当然过份的网站也许会放广告。
hostodo从2014年年底运作至今一直都是走低价促销侧率运作VPS,在市场上一直都是那种不温不火的品牌知名度,好在坚持了7年都还运作得好好的,站长觉得hostodo还是值得大家在买VPS的时候作为一个候选考虑项的。当前,hostodo有拉斯维加斯和迈阿密两个数据中心的VPS在促销,专门列出了2款VPS给8T流量/月,基于KVM虚拟+NVMe整列,年付送DirectAdmin授权(发ticket...
Tudcloud是一家新开的主机商,提供VPS和独立服务器租用,数据中心在中国香港(VPS和独立服务器)和美国洛杉矶(独立服务器),商家VPS基于KVM架构,开设在香港机房,可以选择限制流量大带宽或者限制带宽不限流量套餐。目前提供8折优惠码,优惠后最低每月7.2美元起。虽然主机商网站为英文界面,但是支付方式仅支付宝和Stripe,可能是国人商家。下面列出部分VPS主机套餐配置信息。CPU:1cor...
DiyVM是一家比较低调的国人主机商,成立于2009年,提供VPS主机和独立服务器租用等产品,其中VPS基于XEN(HVM)架构,数据中心包括香港沙田、美国洛杉矶和日本大阪等,CN2或者直连线路,支持异地备份与自定义镜像,可提供内网IP。本月商家最高提供5折优惠码,优惠后香港沙田CN2线路VPS最低2GB内存套餐每月仅50元起。香港(CN2)VPSCPU:2cores内存:2GB硬盘:50GB/R...