设为首页 收藏本站
查看: 2407|回复: 0

[经验分享] IIS 异常 “System.OutOfMemoryException”、“存储空间不足,无法完成此操作。”

[复制链接]

尚未签到

发表于 2015-8-16 09:56:43 | 显示全部楼层 |阅读模式
  1、 场景:今天是中秋节,部门内一个项目才上线,需要有人值班,作为部门的小头头理所当然的奉献一下了。上午基本上没什么问题,
话说也那么巧,中午正好与客户吃饭呢应用人员报告,有两台机器同时“白屏了!”,根据经验分析,应该是服务器的问题,马上回现
场,网络?OK;远程接入到服务器,登录后提示IIS异常,报了个VC++的内存错误;IISRESET,客户端已能正常连接;查看系统日志.....
  2、故事正式开始。
DSC0000.jpg DSC0001.jpg
  太懒了,不重新描述了,把邮件内容贴上吧:
  

各位领导、老师好!

问题现象:见附件两图片。

产生原因:(问题分析依据:http://support.microsoft.com/kb/911816):
出现这个问题的原因在于未处理异常的默认策略在 .NET Framework 2.0 中已发生更改。默认情况下,未处理异常的策略是结束工作进程。
在 Microsoft .NET Framework 1.1 和 Microsoft .NET Framework 1.0 中,会忽略托管线程上的未处理异常。除非附加调试程序以捕获异常,否则您可能意识不到出错。
ASP.NET 在 .NET Framework 2.0 中使用未处理异常的默认策略。引发未处理的异常时,基于 ASP.NET 的应用程序将会意外退出。
如果在请求上下文中出现异常,则不会发生上述行为。这类异常仍由 HttpException 对象进行处理和包装。在请求上下文中出现的异常不会导致工作进程结束。但是,请求上下文之外的未处理异常(如计时器线程上或回调函数中的异常)会导致工作进程结束。

解决办法:1、修改 IHttpModule 对象的源代码,以便将异常信息记录到应用程序日志中。
             2、将未处理异常策略更改回 .NET Framework 1.1 和 .NET Framework 1.0 中发生的默认行为。
             3、如因Framework本身引起异常,安装Sp2后可解决。

处理结果:现已按解决办法1进行日志跟踪以查找具体原因。

<我的大名>匿了


总之就是按照邮件所述内容搞了一通,在本地做完实验,发现的确可以捕捉到应用的异常,于是发布到服务器,观察一阵,客户端应用正常,就等着下次异常出现,以确定最终异常所在了。。。。。

2、回到家再做饭已经来不及了,抱着负罪感带老婆、孩子去吃饺子,还好排了10分种终于有位置,菜还没上、饺子还没选,评书中讲的也没这么巧,电话来了,异常出现!!!!!!,&#8220;上马&#8221;去现场肯定来不及,不如&#8220;马上&#8221;让兄弟远程处理,2分种后短信发来一切正常,此刻起,我每吃两个饺一个电话,直至15个饺子吃完。
    老婆一肚子火,我明知理亏,所以不能怒,更不能言,上车回家,打开笔记本,远程......事件查看器、Google、baidu、截图.......后面的内容又在邮件里了。

标题《跟踪"存储空间不足,无法完成此操作"异常情况,初步分析原因及处理情况,进一步观察中》
DSC0002.jpg DSC0003.jpg




各位领导、同仁,大家好!

  根据上封邮件采取措失,在晚18点出现异常时捕捉到错误的详细信息如下:

Event code: 3005
Event message: 发生了未处理的异常。
Event time: 22/9/2010 PM 6:07:24
     Event time (UTC): 22/9/2010 AM 10:07:24
Event ID: 4db8c7da0d564747986910d2ffd18960
     ..................

     Exception information:
     Exception type: OutOfMemoryException
     Exception message: 引发类型为&#8220;System.OutOfMemoryException&#8221;的异常。

错误信息详细及各错误对比见附件(按时间顺序)

用友U8异常处理:
     http://bbs.iufida.com/thread-49629-1-1.html
微软MSDN解决办法:
     http://msdn.microsoft.com/en-us/library/ms972959.aspx
SOSO问问:
     http://wenwen.soso.com/z/q6502715.htm


问题原因:
     在ASP.NET Web(U8Soft.AppServer)服务器上,ASP.NET所能够用到的内存,通常不会等同于所有的内存数量。在machine.config配置文件(目录)中,配置节中有一个属性&#8220;memoryLimit&#8221;,这个属性的值是一个百分值,默认为&#8220;60&#8221;,即指定了ASP.NET进程(在任务管理器中大家就可以看到ASP.NET的进程,IIS5中为aspnet_wp,IIS6中为w3wp)能够使用所有物理内存的60%。当ASP.NET使用的内存量超过这个限额时,IIS会开始自动回收(recycle)进程,即创建一个新的进程去负责应付Http请求,而将旧进程所占用的内存回收。
     比如我们准备了一台4G内存的服务器,那么4G&#215;60%=2.4G。但是,对于Win32操作系统,一个进程所能占用的所有内存空间只有2G。当ASP.NET进程占用的内存开始达到2G时,由于它并没有达到2.4G的&#8220;回收阈值&#8221;,所以IIS不会启动recycle进程操作,但是由于Win32的限制,实际上已经不能给这个进程分配更多的内存了,于是,OutOfMemoryException就很可能会被抛出了。


解决方案:
如果你有一台大内存的服务器,同时对Win32操作系统中对于进程最高使用2G内存的限制很郁闷,可选的解决方法有两个:
1、使用/3GB模式启动计算机(只适用于XP和2003操作系统)。在boot.ini文件中做如下设置 [boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINNT [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2003 Server" /3GB
2、使用Windows Server 2003 64bits Edition


上述解决方案是用友建议解决办法,根据我们实际生产情况,暂时无法调整操作系统,所以现采用微软MSDN知识库&#8220;应用程序池&#8221;回收处理机制建议,现将应用程序池内存调整至800M,以观后效。


祝大家中秋快乐!

PS:如果这个问题解决了,我也很快乐.


礼!      

<我的大名>匿了


我想这事算是告以段落了。


替朋友打个广告:某男IT从业9年,.NET开发8年时间,多年制造管理、航运生产相关信息化项目建设经验,有项目组织、系统设计开发及实施能力,欲从事项目咨询职位,有意者请留言。
  
  
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-99633-1-1.html 上篇帖子: Win2003下使用IIS+PHP+MySQL来运行DZ 下篇帖子: 写的IIS管理类C#
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表