C# 中的 IIS7 应用程序池

Posted

技术标签:

【中文标题】C# 中的 IIS7 应用程序池【英文标题】:IIS7 Application Pools in C# 【发布时间】:2013-09-05 19:48:32 【问题描述】:

我有一个通过 IIS7 在本地安装的每台 PC 上托管的 Web 应用程序。在 Web 应用程序中,管理员可以更改设置。其中一项设置包括 App Pool IdleTimout。据我所知,C# 代码正在使用 Microsoft.Web.Administration.dll 参考:(一个简短的示例)

ServerManager manager = new ServerManager();
manager.ApplicationPools["DefaultAppPool"].ProcessModel.IdleTimeout = new TimeSpan(0, 5, 0);

在调试代码时,IdleTimeout 显示的值是 00:05:00,根据上面的代码应该是正确的。

但是,如果我在更新和保存此设置后进入 IIS,并转到 DefaultAppPool 的高级设置部分,我看到超时仍设置为默认值 20。这应该在 IIS 中更改我像上面一样设置变量?今天下午我一直在谷歌搜索,但我似乎无法找到答案。希望我只是做错了什么。非常感谢任何见解!我的目标是能够在 C# 代码中设置 DefaultAppPool 的 IdleTimeout。

【问题讨论】:

【参考方案1】:

进行更改后,您需要在 ServerManager 实例上调用 CommitChanges()

ServerManager manager = new ServerManager();
manager.ApplicationPools["DefaultAppPool"].ProcessModel.IdleTimeout = new TimeSpan(0, 5, 0);
manager.CommitChanges();

【讨论】:

太棒了!感谢您的帮助!

以上是关于C# 中的 IIS7 应用程序池的主要内容,如果未能解决你的问题,请参考以下文章

iis7为应用程序池指定标识(执行帐号)

IIS6与IIS7中的w3wp工作进程

IIS6.0 IIS7.5应用程序池自动停止怎么办

IIS7应用程序池集成和经典的区别

读取 cookie 时 IIS7 应用程序池崩溃

IIS7.5 用 IIS AppPool应用程序池名 做账号 将各站点权限分开