none
ASP.NET 修改IIS应用程序池垃圾回收时间为120分钟? RRS feed

  • 问题

  • 如题,想知道如何通过写程序的方式修改IIS应用程序池垃圾回收时间为120分钟。

    我大概知道:

    DirectoryEntry appPool = new DirectoryEntry("IIS://localhost/W3SVC/AppPools");
    DirectoryEntry findPool = appPool.Children.Find("DefaultAppPool", "IIsApplicationPool");

    findPool.Properties["XX"][0]=XX;

    但是我不知道Properties到底有哪些参数,如何去书设置属性的值。

    希望高手能帮助解决下,并告诉我你们是如何获取这些信息的(相关文章怎么找到的)

    2011年6月23日 6:22

答案

  • 你可以去查iis的参考手册,因为不是所有的人都去写这样的代码。

    iis编程文档

    http://msdn.microsoft.com/en-us/library/ms524713%28VS.90%29.aspx


    【孟子E章】
    • 已标记为答案 ZARD2008 2011年6月28日 6:25
    2011年6月28日 0:47
    版主
  • 谢谢,孟总的帮助,你永远都这么热情,乐于帮助他人,很感谢你对大家技术的答疑! 问题我也找到解决办法了。不是在MSDN上,在CSDN上。我原来也是想把IIS 应用程序池的属性遍历出来的。但是遍历出了问题: DirectoryEntry apppools = new DirectoryEntry("IIS://localhost/W3SVC/AppPools"); newpool = apppools.Children.Add(AppPoolName, "IIsApplicationPool"); ICollection ic=apppools.Properties.PropertyNames; 对于IC对象不好遍历(小弟才疏学浅啊),原来foreach (string elmentName in apppools.Properties.PropertyNames),o(︶︿︶)o 唉但是没想来就是ICollection IC里面存的不就是String嘛。。。 下面是遍历的代码: foreach (string elmentName in apppools.Properties.PropertyNames) { PropertyValueCollection valueCollection = apppools.Properties[elmentName]; for (int i = 0; i < valueCollection.Count; i++) { setLog(elmentName + "[ " + i.ToString() + "] = " + valueCollection[i].ToString() + "
    "); } } 输出结果如下: 2011-6-28 14:04:44 正在输出SHAPPPOOL应用程序池相关属性! 2011-6-28 14:04:44 AppPoolIdentityType[ 0] = 2
    2011-6-28 14:04:44 AppPoolQueueLength[ 0] = 1000
    2011-6-28 14:04:44 CPULimit[ 0] = 0
    2011-6-28 14:04:44 CPUResetInterval[ 0] = 5
    2011-6-28 14:04:44 DisallowOverlappingRotation[ 0] = False
    2011-6-28 14:04:44 DisallowRotationOnConfigChange[ 0] = False
    2011-6-28 14:04:44 IdleTimeout[ 0] = 20
    2011-6-28 14:04:44 LoadBalancerCapabilities[ 0] = 2
    2011-6-28 14:04:44 LogEventOnRecycle[ 0] = 137
    2011-6-28 14:04:44 MaxProcesses[ 0] = 1
    2011-6-28 14:04:44 OrphanWorkerProcess[ 0] = False
    2011-6-28 14:04:44 PeriodicRestartMemory[ 0] = 0
    2011-6-28 14:04:44 PeriodicRestartPrivateMemory[ 0] = 0
    2011-6-28 14:04:44 PeriodicRestartRequests[ 0] = 0
    2011-6-28 14:04:44 PeriodicRestartTime[ 0] = 1740
    2011-6-28 14:04:44 PingingEnabled[ 0] = True
    2011-6-28 14:04:44 PingInterval[ 0] = 30
    2011-6-28 14:04:44 PingResponseTime[ 0] = 90
    2011-6-28 14:04:44 RapidFailProtection[ 0] = True
    2011-6-28 14:04:44 RapidFailProtectionInterval[ 0] = 5
    2011-6-28 14:04:44 RapidFailProtectionMaxCrashes[ 0] = 5
    2011-6-28 14:04:44 ShutdownTimeLimit[ 0] = 90
    2011-6-28 14:04:44 SMPAffinitized[ 0] = False
    2011-6-28 14:04:44 SMPProcessorAffinityMask[ 0] = -1
    2011-6-28 14:04:44 StartupTimeLimit[ 0] = 90
    2011-6-28 14:04:44 KeyType[ 0] = IIsApplicationPools
    2011-6-28 14:04:44 AdminACL[ 0] = System.__ComObject
    2011-6-28 14:04:44 WAMUserName[ 0] = IWAM_PHD-MAIN
    2011-6-28 14:04:44 WAMUserPass[ 0] = ~qN0N5)Gks2#uj
    这样就知道了,就是设置PeriodicRestartTime[ 0] = 120 。
    • 已标记为答案 ZARD2008 2011年6月28日 6:25
    2011年6月28日 6:23

全部回复

  • 初来乍到,MSDN没人回复嘛。求高手帮忙
    2011年6月24日 6:33
  • 你可以去查iis的参考手册,因为不是所有的人都去写这样的代码。

    iis编程文档

    http://msdn.microsoft.com/en-us/library/ms524713%28VS.90%29.aspx


    【孟子E章】
    • 已标记为答案 ZARD2008 2011年6月28日 6:25
    2011年6月28日 0:47
    版主
  • 谢谢,孟总的帮助,你永远都这么热情,乐于帮助他人,很感谢你对大家技术的答疑! 问题我也找到解决办法了。不是在MSDN上,在CSDN上。我原来也是想把IIS 应用程序池的属性遍历出来的。但是遍历出了问题: DirectoryEntry apppools = new DirectoryEntry("IIS://localhost/W3SVC/AppPools"); newpool = apppools.Children.Add(AppPoolName, "IIsApplicationPool"); ICollection ic=apppools.Properties.PropertyNames; 对于IC对象不好遍历(小弟才疏学浅啊),原来foreach (string elmentName in apppools.Properties.PropertyNames),o(︶︿︶)o 唉但是没想来就是ICollection IC里面存的不就是String嘛。。。 下面是遍历的代码: foreach (string elmentName in apppools.Properties.PropertyNames) { PropertyValueCollection valueCollection = apppools.Properties[elmentName]; for (int i = 0; i < valueCollection.Count; i++) { setLog(elmentName + "[ " + i.ToString() + "] = " + valueCollection[i].ToString() + "
    "); } } 输出结果如下: 2011-6-28 14:04:44 正在输出SHAPPPOOL应用程序池相关属性! 2011-6-28 14:04:44 AppPoolIdentityType[ 0] = 2
    2011-6-28 14:04:44 AppPoolQueueLength[ 0] = 1000
    2011-6-28 14:04:44 CPULimit[ 0] = 0
    2011-6-28 14:04:44 CPUResetInterval[ 0] = 5
    2011-6-28 14:04:44 DisallowOverlappingRotation[ 0] = False
    2011-6-28 14:04:44 DisallowRotationOnConfigChange[ 0] = False
    2011-6-28 14:04:44 IdleTimeout[ 0] = 20
    2011-6-28 14:04:44 LoadBalancerCapabilities[ 0] = 2
    2011-6-28 14:04:44 LogEventOnRecycle[ 0] = 137
    2011-6-28 14:04:44 MaxProcesses[ 0] = 1
    2011-6-28 14:04:44 OrphanWorkerProcess[ 0] = False
    2011-6-28 14:04:44 PeriodicRestartMemory[ 0] = 0
    2011-6-28 14:04:44 PeriodicRestartPrivateMemory[ 0] = 0
    2011-6-28 14:04:44 PeriodicRestartRequests[ 0] = 0
    2011-6-28 14:04:44 PeriodicRestartTime[ 0] = 1740
    2011-6-28 14:04:44 PingingEnabled[ 0] = True
    2011-6-28 14:04:44 PingInterval[ 0] = 30
    2011-6-28 14:04:44 PingResponseTime[ 0] = 90
    2011-6-28 14:04:44 RapidFailProtection[ 0] = True
    2011-6-28 14:04:44 RapidFailProtectionInterval[ 0] = 5
    2011-6-28 14:04:44 RapidFailProtectionMaxCrashes[ 0] = 5
    2011-6-28 14:04:44 ShutdownTimeLimit[ 0] = 90
    2011-6-28 14:04:44 SMPAffinitized[ 0] = False
    2011-6-28 14:04:44 SMPProcessorAffinityMask[ 0] = -1
    2011-6-28 14:04:44 StartupTimeLimit[ 0] = 90
    2011-6-28 14:04:44 KeyType[ 0] = IIsApplicationPools
    2011-6-28 14:04:44 AdminACL[ 0] = System.__ComObject
    2011-6-28 14:04:44 WAMUserName[ 0] = IWAM_PHD-MAIN
    2011-6-28 14:04:44 WAMUserPass[ 0] = ~qN0N5)Gks2#uj
    这样就知道了,就是设置PeriodicRestartTime[ 0] = 120 。
    • 已标记为答案 ZARD2008 2011年6月28日 6:25
    2011年6月28日 6:23