您的位置:首页网络冲浪服务器 → 服务器内存小引发的惨案

服务器内存小引发的惨案

时间:2011/7/29 9:56:03来源:本站原创作者:xy我要评论(0)

2

这些日志是怎么产生的?

其实就是系统未被捕获的异常的,然后最终一路过五关,最后就跑这来了,跑到这来,基本上你的应用程序池就变的很不稳定的说。

下面就随意扯扯异常这事情

首先一点就是:

在.NET 2.0中,主线程或线程的错误,都会导致进程的中止,引发应用程序池回收。

1.1版本的时候,线程的错误是不会引发主进程中止的。

PS:还记得我上篇文章“秋色园QBlog技术原理解析:性能优化篇:用户和文章计数器方案(十七)”说到的内置线程吧,

其实隐藏说的就是这问题,线程的访问冲突,经常性的引发了主进程中止,导致应用程序池重启。

再说一点的就:

先把日志上的警告和异常给处理了。

最后一点的就是:

全局捕获未处理的异常,然后作掉它,不让它跑到这来危害应用程序池重启。[补充:作掉它并不能避免应用程序池重启]

基础不好,很多天了,才偶然发现这么点代码:

一:AppDomain.CurrentDomain.UnhandledException 事件

        public Window1() {
            InitializeComponent();
            AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
        }

        void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
        {
            throw new NotImplementedException();
        }

PS:在web中发现这家伙似乎不起作用,没深入纠结它,而且它阻止不了异常往上报,只能是收集信息用。

二:HttpApplication.Error事件

        public void Init(HttpApplication context)
        {
            context.BeginRequest += new EventHandler(context_BeginRequest);
            context.Error += new EventHandler(context_Error);
        }

        void context_Error(object sender, EventArgs e)
        {
            HttpApplication app = (HttpApplication)sender;
            Log.WriteLogToTxt(app.Server.GetLastError());
            app.Server.ClearError();//把错误消灭了,不让它往上抛
        }

这里其实要说的就是app.Server.ClearError(),为了发现这一行代码,我纠结了好多个小时,最后很偶然才发现它,[虽然发现了它,但是作用似乎不大]。

补充:

在楼下网友:长河落魄 的疑问声中,我测试了一下,得到以下结果:

1:主线程中产生的“错误”,只要不是致命的,系统日志中仅是“警告”级别,它不会引发应用程序重启。

2:内置线程中产生的“错误”,系统中产生的“错误”级别,它会中止进程,而且,上面的全局语句并不能捕获到异常。

当然,这里还有几个疑惑:

1:应用程序池是不是只遇到“错误”级别的,才会引发终止,重启?

2:主线程中一般的错误都是“警告”级别,那有没有可能会产生“错误”级别的错误呢?如果产生了,是不是一样可拦截?这上面的清除异常的代码,是不是就有效了?

3:多线程中的异常,没有全局捕获的事件了?如果有,你在哪呢?

好了,现在基本上错误都被记录,一步一步对着日志一个一个消灭了,现在基本上应用程序池很稳定不乱重启了,安稳了许多。

其实总结还是一句:内存太小,伤不起啊!

本文导航

相关视频

    没有数据

相关阅读 JEDEC:计划要将PC3200制定为新的服务器内存标准PlayStationNow全力支持PC/PS4 将停止PS3和PSV服务荣耀战魂无法连接服务器怎么办 荣耀战魂服务器连接失败解决方法仁王掉线怎么办 仁王连不上服务器解决方法QQ怎么节省内存空间 手机QQ内存怎么清理流放者柯南个人服务器怎么修改 流放者柯南个人服务器配置教程流放者柯南服务器刷新方法 流放者柯南服务器刷不出怎么办h1z1怎么选择服务器 h1z1服务器选择攻略

文章评论
发表评论

热门文章 IIS安装教程(图文详解服务器端口汇聚图文教

最新文章 IIS安装教程(图文详解服务器端口汇聚图文教 9个常见win2003 iis配置问题及解决方法IIS安装教程(图文详解)2003IIS6安装时提示“将加密数据写入Web服务器配eAccelerator加载不成功解决方法

人气排行 iis7如何添加mime类型支持所有后缀名文件的服务器C盘空间不足,满了怎么办?IBM DS4700安装指导手册服务器端口汇聚图文教程如何解决DNS故障apache php 配置优化流量监视工具DU Meter介绍西部数码如何设置网易域名邮箱解析