- 浏览: 216144 次
- 性别:
- 来自: 江西
文章分类
- 全部博客 (109)
- C# (29)
- ASP.NET (30)
- MSSQL (29)
- javascript (9)
- cmd (3)
- ORACLE (4)
- log4j (1)
- window (5)
- FTP (1)
- Shell (1)
- java (1)
- IIS (7)
- html (11)
- SQL (3)
- Jquery (11)
- IE (3)
- 火狐、谷歌 (2)
- wince (2)
- JSON (5)
- List (1)
- Foreach (1)
- SQLhelper (1)
- Ajax (1)
- Firebird (1)
- mysql (7)
- js (2)
- jQuery.autocomplete (1)
- dataTable (1)
- Http (1)
- get (1)
- datetime (1)
- powshell (1)
- URL Protocol (1)
- Office (1)
- Excel (1)
- ASP.NET,算法,秘钥 (1)
- 浏览器 (1)
- Tomcat (1)
最新评论
一 在IIS6.0应用程序池,单击默认应用程序池的属性,√回收工程进程
在ASP.NET Web服务器上,ASP.NET所能够用到的内存,通常不会等同于所有的内存数量。在machine.config配置文件中,配置节<processModel>中有一个属性“memoryLimit”,这个属性的值是一个百分值,默认为“60”,即指定了ASP.NET进程(在任务管理器中大家就可以看到ASP.NET的进程,IIS5中为aspnet_wp,IIS6中为w3wp)能够使用所有物理内存的60%。当ASP.NET使用的内存量超过这个限额时,IIS会开始自动回收(recycle)进程,即创建一个新的进程去负责应付Http请求,而将旧进程所占用的内存回收。
当我们有一台很大内存的服务器时,“memoryLimit”这个值是需要进行适当的调整的。比如我们准备了一台4G内存的服务器,那么4G×60%=2.4G。但是,对于Win32操作系统,一个进程所能占用的所有内存空间只有2G。当ASP.NET进程占用的内存开始达到2G时,由于它并没有达到2.4G的“回收阈值”,所以IIS不会启动recycle进程操作,但是由于Win32的限制,实际上已经不能给这个进程分配更多的内存了,于是,OutOfMemoryException就很可能会被抛出了。为了避免这样的情况,我们就必须将“memoryLimit”适当调小,以让IIS更早的进行进程回收。
微软推荐的ASP.NET进程占用内存是不超过60%,并最好使计算出的实际值不超过800M。就是说,对于一台4G内存的服务器,最好将“memoryLimit”属性设置成“20”。设置一个适当的回收阈值,让IIS适时的进行进程回收,对于保证整个服务器的稳定运行,避免OutOfMemoryException是非常重要的。
在IIS6中,ASP.NET进程的回收阈值不再由配置节中的“memoryLimit”属性决定,而是由IIS管理器中的应用程序池配置中的设置决定。
但是,即使正确设置了这些配置,也不能保证完全避免OutOfMemoryException的发生,原因可能是多样而复杂的,比如内存回收操作可能耗时太多等等。开发人员要注意的,就是在代码中时刻牢记不要无谓的使用和浪费内存。
二:修改 %WINDIR%\Microsoft.NET\Framework\v2.0.50727\Aspnet.config 档案 ( 如果是 .NET 1.1 要修改 %WINDIR%\Microsoft.NET\Framework\v1.1.4322\Aspnet.config 檔案 ):
预设的 Aspnet.config 这样:
<?xml version="1.0" encoding="UTF-8" ?><configuration> <runtime> <legacyUnhandledExceptionPolicy enabled="false" /> <legacyImpersonationPolicy enabled="true"/> <alwaysFlowImpersonationPolicy enabled="false"/> <SymbolReadingPolicy enabled="1" /> </runtime></configuration>
需加上一行 <gcServer enabled="false"/> 如下:
<?xml version="1.0" encoding="UTF-8" ?><configuration> <runtime> <gcServer enabled="false" /> <legacyUnhandledExceptionPolicy enabled="false" /> <legacyImpersonationPolicy enabled="true"/> <alwaysFlowImpersonationPolicy enabled="false"/> <SymbolReadingPolicy enabled="1" /> </runtime></configuration>
这样就设定完成了!
在ASP.NET Web服务器上,ASP.NET所能够用到的内存,通常不会等同于所有的内存数量。在machine.config配置文件中,配置节<processModel>中有一个属性“memoryLimit”,这个属性的值是一个百分值,默认为“60”,即指定了ASP.NET进程(在任务管理器中大家就可以看到ASP.NET的进程,IIS5中为aspnet_wp,IIS6中为w3wp)能够使用所有物理内存的60%。当ASP.NET使用的内存量超过这个限额时,IIS会开始自动回收(recycle)进程,即创建一个新的进程去负责应付Http请求,而将旧进程所占用的内存回收。
当我们有一台很大内存的服务器时,“memoryLimit”这个值是需要进行适当的调整的。比如我们准备了一台4G内存的服务器,那么4G×60%=2.4G。但是,对于Win32操作系统,一个进程所能占用的所有内存空间只有2G。当ASP.NET进程占用的内存开始达到2G时,由于它并没有达到2.4G的“回收阈值”,所以IIS不会启动recycle进程操作,但是由于Win32的限制,实际上已经不能给这个进程分配更多的内存了,于是,OutOfMemoryException就很可能会被抛出了。为了避免这样的情况,我们就必须将“memoryLimit”适当调小,以让IIS更早的进行进程回收。
微软推荐的ASP.NET进程占用内存是不超过60%,并最好使计算出的实际值不超过800M。就是说,对于一台4G内存的服务器,最好将“memoryLimit”属性设置成“20”。设置一个适当的回收阈值,让IIS适时的进行进程回收,对于保证整个服务器的稳定运行,避免OutOfMemoryException是非常重要的。
在IIS6中,ASP.NET进程的回收阈值不再由配置节中的“memoryLimit”属性决定,而是由IIS管理器中的应用程序池配置中的设置决定。
但是,即使正确设置了这些配置,也不能保证完全避免OutOfMemoryException的发生,原因可能是多样而复杂的,比如内存回收操作可能耗时太多等等。开发人员要注意的,就是在代码中时刻牢记不要无谓的使用和浪费内存。
二:修改 %WINDIR%\Microsoft.NET\Framework\v2.0.50727\Aspnet.config 档案 ( 如果是 .NET 1.1 要修改 %WINDIR%\Microsoft.NET\Framework\v1.1.4322\Aspnet.config 檔案 ):
预设的 Aspnet.config 这样:
<?xml version="1.0" encoding="UTF-8" ?><configuration> <runtime> <legacyUnhandledExceptionPolicy enabled="false" /> <legacyImpersonationPolicy enabled="true"/> <alwaysFlowImpersonationPolicy enabled="false"/> <SymbolReadingPolicy enabled="1" /> </runtime></configuration>
需加上一行 <gcServer enabled="false"/> 如下:
<?xml version="1.0" encoding="UTF-8" ?><configuration> <runtime> <gcServer enabled="false" /> <legacyUnhandledExceptionPolicy enabled="false" /> <legacyImpersonationPolicy enabled="true"/> <alwaysFlowImpersonationPolicy enabled="false"/> <SymbolReadingPolicy enabled="1" /> </runtime></configuration>
这样就设定完成了!
发表评论
-
微信分享
2017-04-20 14:15 684/// <summary> // ... -
web.config 为某个单独页面设置编码格式
2017-03-31 18:28 1168原文链接:http://www.cnblogs.com/m ... -
json日期格式转换成日期字符串
2016-08-29 10:31 2194这里进行去掉json日期的\date\字符串: st ... -
C# http get请求 判断是否存在该图片信息
2016-08-29 10:25 997/// <summary> /// h ... -
C# 将json转换成Datatable
2016-08-29 10:19 1333/// <summary> /// 将 ... -
asp.net谷歌地图api调用
2014-03-05 16:25 984<html xmlns="http://www ... -
JS包含在HTML文件中正常,包含在ASPX文件中就报错
2014-01-09 10:07 1942今天用到了一段显示谷歌地图的JS代码,在Html中显示正常的, ... -
HTTP 500 .19
2013-11-22 14:21 856模块CustomErrorModule的 通知SendResp ... -
COM 类工厂中 CLSID 为 {A86BB4D8-209D-40E1-87A6-7AA236094FAD} 的组件时失败,原因是出现以下错误: 800401
2013-09-12 13:21 1615第一: 检查dll文件是否存在 第二: 兼容问题,看i ... -
ASP.NET中url传递中文的解决方案,传递参数为汉字时出现乱码等问题
2013-09-11 16:13 916来源:http://hi.baidu.com/netkey/i ... -
常用的WebService一览表
2013-09-05 10:43 692转载:http://blog.csdn.net/wangzh3 ... -
.NET中zip的压缩和解压
2013-08-27 13:51 1236来源于:http://www.cnblogs.com/zhao ... -
JS调用CS里的方法:PageMethods
2013-08-26 15:59 1079来源于:http://hi.baidu.com/haofz19 ... -
Automation服务器不能创建对象_的多种解决办法
2013-08-26 13:10 565方法一: 开始-运行:regsvr32 scrrun.dll ... -
html:target几种介绍
2013-08-08 10:28 847_blank -- 在新窗口中打开链接 _parent -- ... -
图表处理程序配置 [c:\TempImageFiles\] 中的临时目录无效
2013-07-24 11:15 3708图表处理程序配置 [c:\TempImageFiles\] 中 ... -
asp.net 在webcofig中连接数据库方式
2013-07-02 14:38 7531:window方式验证 <connectionStri ... -
在64位Windows的IIS上开启32位程序支持(zz)
2013-07-02 14:34 902在64位Windows的IIS上开启32位程序支持(zz) 经 ... -
对路径“C:\Inetpub\wwwroot\UploadFile\AssertTemple1.xls”的访问被拒绝。
2013-06-04 10:40 5133要为 ASPNET 帐户添加对根 Web 站点或任何虚拟目录的 ... -
异常详细信息: System.Web.Hosting.HostingEnvironmentException: 访问 IIS 元数据库失败解决方法
2013-05-29 14:50 928异常详细信息: System.Web.Hosting.Host ...
相关推荐
在什么情况下会出现OutOfMemonryException呢? 在我们试图新建一个对象时,而垃圾收集器又找不到...异常的; 另一种情况是,CLR需要内存时,而却系统却不能提供,也会抛出该异常. 但此时,我们的应用程序是不能捕获该错误的.
标题中的“SQL Server出现System.OutOfMemoryException异常的解决方法”指的是在使用SQL Server时遇到的一种常见错误,即系统内存不足异常(System.OutOfMemoryException)。这种异常通常发生在SQL Server试图处理的...
System.OutOfMemoryException(解决方案).md
非CLS的异常(一般来源于本地代码,这些异常不继承于System.Exception)在.net framework 4.0中默认行为不捕获非CLS的异常在.net framework 2.0中会把非CLS的异常包装为System.Exception的之类(可以catch
然而,在实际操作中,可能会遇到一些技术问题,如“System.OutOfMemoryException”异常和“未将对象引用设置到对象的实例”的错误。下面我们将详细探讨这些问题的原因及解决方法。 1. **“System....
在.NET框架中,C#应用程序在执行过程中可能会遇到各种异常情况,其中之一是`OutOfMemoryException`。这个异常通常表示程序尝试分配的内存超过了系统能够提供的内存。然而,一个常见的误解是,`OutOfMemoryException`...
7. `System.OutOfMemoryException`:内存分配失败时抛出。 8. `System.OverflowException`:在受检查的上下文中,算术运算溢出时抛出。 9. `System.StackOverflowException`:当调用堆栈耗尽时,即方法调用过多时抛...
File test = new File("D:\\test.xlsx"); try { XSSFWorkbook wb = new XSSFWorkbook(new FileInputStream(test))... System.out.println(i+":null"); } } } catch (Exception e) { e.printStackTrace(); }
- `System.OutOfMemoryException`:内存分配失败时抛出。 - `System.OverflowException`:在检查模式下,算术运算溢出时抛出。 - `System.StackOverflowException`:堆栈溢出,通常是因为递归过深或无限循环导致。 ...
* System.OutOfMemoryException 没有足够的内存继续执行程序时引发的异常。 * System.StackOverflowException 挂起的方法调用过多而导致执行堆栈溢出时引发的异常。 2. 由 System.ArgumentException 派生的异常...
- **`SystemException`**:包含了所有由运行库直接引发的异常,如`ExecutionEngineException`、`StackOverflowException`、`OutOfMemoryException`等,这些异常往往表示严重且不可恢复的错误。 - **`...
C# 中的错误处理是编程中不可或缺的一部分,它能够帮助开发者检测和解决程序中的错误。在 C# 中,错误处理是通过 try-catch 块来实现的,try 块中包含可能出现错误的代码,而 catch 块中包含错误处理代码。 在 C# ...
在C#编程中,异常处理是一项关键技能,它允许开发者优雅地处理运行时错误,确保程序的健壮性和用户友好性。本文将深入探讨C#中的异常处理机制,包括其基本概念、常用关键字、异常处理格式,以及如何通过实战案例理解...
然而,有些错误级别过高,不能被常规的try-catch块捕获,例如StackOverflowException(堆栈溢出异常)和OutOfMemoryException(内存不足异常)。这两种异常是系统级的,如果它们未被正确处理,可能会导致整个应用...
它还包含了处理异常、内存管理和垃圾收集的类,如`OutOfMemoryException`、`GC`和`WeakReference`。 总之,System命名空间是C#开发中不可或缺的部分,它提供了大量用于构建健壮、安全且高效应用程序的基础工具和...
Java 内存泄露 解决方案 outofmemoryException 从实践获取真理