- 浏览: 215240 次
- 性别:
- 来自: 江西
文章分类
- 全部博客 (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 671/// <summary> // ... -
web.config 为某个单独页面设置编码格式
2017-03-31 18:28 1144原文链接:http://www.cnblogs.com/m ... -
json日期格式转换成日期字符串
2016-08-29 10:31 2176这里进行去掉json日期的\date\字符串: st ... -
C# http get请求 判断是否存在该图片信息
2016-08-29 10:25 981/// <summary> /// h ... -
C# 将json转换成Datatable
2016-08-29 10:19 1316/// <summary> /// 将 ... -
asp.net谷歌地图api调用
2014-03-05 16:25 979<html xmlns="http://www ... -
JS包含在HTML文件中正常,包含在ASPX文件中就报错
2014-01-09 10:07 1935今天用到了一段显示谷歌地图的JS代码,在Html中显示正常的, ... -
HTTP 500 .19
2013-11-22 14:21 851模块CustomErrorModule的 通知SendResp ... -
COM 类工厂中 CLSID 为 {A86BB4D8-209D-40E1-87A6-7AA236094FAD} 的组件时失败,原因是出现以下错误: 800401
2013-09-12 13:21 1613第一: 检查dll文件是否存在 第二: 兼容问题,看i ... -
ASP.NET中url传递中文的解决方案,传递参数为汉字时出现乱码等问题
2013-09-11 16:13 911来源:http://hi.baidu.com/netkey/i ... -
常用的WebService一览表
2013-09-05 10:43 690转载:http://blog.csdn.net/wangzh3 ... -
.NET中zip的压缩和解压
2013-08-27 13:51 1232来源于:http://www.cnblogs.com/zhao ... -
JS调用CS里的方法:PageMethods
2013-08-26 15:59 1077来源于:http://hi.baidu.com/haofz19 ... -
Automation服务器不能创建对象_的多种解决办法
2013-08-26 13:10 559方法一: 开始-运行:regsvr32 scrrun.dll ... -
html:target几种介绍
2013-08-08 10:28 845_blank -- 在新窗口中打开链接 _parent -- ... -
图表处理程序配置 [c:\TempImageFiles\] 中的临时目录无效
2013-07-24 11:15 3703图表处理程序配置 [c:\TempImageFiles\] 中 ... -
asp.net 在webcofig中连接数据库方式
2013-07-02 14:38 7491:window方式验证 <connectionStri ... -
在64位Windows的IIS上开启32位程序支持(zz)
2013-07-02 14:34 900在64位Windows的IIS上开启32位程序支持(zz) 经 ... -
对路径“C:\Inetpub\wwwroot\UploadFile\AssertTemple1.xls”的访问被拒绝。
2013-06-04 10:40 5129要为 ASPNET 帐户添加对根 Web 站点或任何虚拟目录的 ... -
异常详细信息: System.Web.Hosting.HostingEnvironmentException: 访问 IIS 元数据库失败解决方法
2013-05-29 14:50 922异常详细信息: 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 从实践获取真理
- 在执行某些查询时遇到了内存溢出异常(`System.OutOfMemoryException`)。这表明查询过程中消耗了大量的内存资源,可能是由于查询结果集过大或者内部处理过程中的资源分配不当所导致。解决此类问题通常需要从以下...
通过理解每种异常的含义、触发条件和解决策略,开发者可以更加自信地应对程序中的错误,从而提高代码的稳定性和可靠性。 #### 1. `ArithmeticException` 当执行算术运算时遇到非法操作,如除以零,就会抛出`...