• 又是可用内存不足。这次的表现为:事件来源: ASP.NET 1.1.4322.0,事件 ID: 1084,失败的错误代码为 800705AA


      最近为了解决大文件下载耗内存的问题,费了不少功夫,也遇到许多意想不到的事情,有时间要好好的记上一笔。

      前日,从别人那里看来一段关于下载的代码,把以前的代码修改了下。

    Code

      大致上就这个样子,这段代码写法上有很多问题,比如没用finally块集中释放资源,catch不该这么写。

    我拿了这段代码就去测试了,最初是在用winxp做web服务器,下载的文件在win2003上,局域网内的两台机子,先后开了6个下载,winxp的内存使用情况也不错。

    由于实际环境中web服务器是win2000,所以再把代码放到win2000上测试,问题来了。打开第一个下载还行,再开第二个,两个下载全都崩了,说是连不上服务器。

    上win2000一看,电脑速度变得巨慢,点个东西要老半天才有反应,忍无可忍,重启机器。

    事件查看器/应用程序 记录了两个错误

    1)

    事件类型: 错误  

    事件来源: ASP.NET   1.1.4322.0  
    事件种类: 无  
    事件   ID: 1084  
    日期:   
    事件:
    用户:
    计算机:
    描述:  
    aspnet_wp.exe   未能启动。失败的错误代码为800705AA。当辅助进程帐户没有足够的权限读取.NET   Framework   文件时,可能会导致该错误。请确保正确安装了   .NET   Framework,并且安装目录的   ACL   允许访问配置的帐户。   

     2)

    事件类型: 错误
    事件来源: ASP.NET   1.1.4322.0  
    事件种类: 无
    事件   ID: 1000
    日期:
    事件:
    用户:
    计算机:
    描述:

    aspnet_wp.exe     (PID:   ****)意外停止。 

      我看了这个挺莫名的,还真去卸载/安装了.Net Framework。 不过问题依旧,这回改查看任务管理器,看谁是用cpu那么猛,hoho,inetinfo.exe,是他!再看性能/物理内存/可用数 只剩下区区4千了,立马去查看究竟那个进程狂用内存了,怪事!内存使用最多的aspnet_wp.exe也只用了区区5千KB,怎么就把我物理内存吃的只剩下4千KB了呢?且慢,再看虚拟内存大小。靠,inetinfo.exe居然占用了1GB的内存,我的天,都是他干的好事。纳闷了,下载的文件也才100MB,inetinfo怎么就到了1G。经过代码调整,发现是Catch处出的问题,希望有哪位看官告诉我为什么会有这样的事儿!

    调整后的代码

    Code

     改成这样后,inetinfo.exe占用的虚拟内存大小显著下降,问题是解决了,但我就纳闷了,原先的代码到底捕捉到了什么奇怪的异常呢。。。
    -----------------------------
    2009/3/16
    -----------------------------
    发生该现象的机器居然坏了,说是硬盘故障。。。没有及时dump,现在什么也做不了了。。
  • 相关阅读:
    Linux搭建maven私服
    eclipse提交项目到GitHub
    eclipse安装sts插件
    idea配置jdk
    C语言之链表————(转载)
    链表(创建,插入,删除和打印输出(转载)
    C语言之链表
    ARM 之LCD和LCD控制器
    ARM的两种启动方式 (NAND FLASH. NOR FLASH)
    ARM 汇编器对C的扩展
  • 原文地址:https://www.cnblogs.com/wordmy/p/1410827.html
Copyright © 2020-2023  润新知