如何确定启用gcServer配置是否生效?

时间:2010-03-11 04:27:05

标签: asp.net garbage-collection

我支持在运行于.NET 2.0 SP1的四核8G计算机上的Windows 2003 SP3 Enterprise上安装的ASP.NET v2.0应用程序。

  1. 在启用配置之前,运行“tasklist / m mscorwks.dll”
    图像名称PID模块
    w3wp.exe 7888 mscorwks.dll

  2. 在web.config中添加部分

  3. 运行IISRESET,重新启动服务器

  4. 运行“tasklist / m mscorsvr.dll”
    信息:没有正在运行的任务符合指定的条件。

  5. 运行“tasklist / m mscorwks.dll”
    图像名称PID模块
    w3wp.exe 6251 mscorwks.dll

  6. 似乎gcServer没有生效。是否有必要的其他设置/配置才能使其正常工作?

3 个答案:

答案 0 :(得分:4)

更新:对不起,只是看到下面的链接,因此可能是整个信息,适用于IIS 6.0。我不知道这是否适用于您的环境。

我不相信你可以在每个AppDomain的基础上配置任何GC设置,这实质上是你在web.config文件中设置它时会发生的情况,因此基于每个应用程序。

您需要在aspnet.config文件中设置它。 Aspnet.config文件与Aspnet_isapi.dll文件位于同一目录中(有关详细信息,请查看this)。

编辑:要找出正在使用的GC,您可以使用WinDBG/SOS and the eeversion命令:

0:010> !eeversion
2.0.50727.3082 retail
Workstation mode
SOS Version: 2.0.50727.3053 retail build

答案 1 :(得分:1)

this MSDN link, where Chapter 5有答案。引自第5章:

  

注意:在撰写本文时,.NET Framework 2.0(代号为“Whidbey”)包含Mscorwks.dll中的GCs,并且Mscorsvr.dll不再存在。

我想无法检查服务器GC是否正常工作。编辑:但请参阅Christian's answer

答案 2 :(得分:1)

从代码中,您可以使用GCSettings.IsServerGC