如何使用Microsoft.Web.Administration设置IIS应用的会话状态Cookie超时
你之前用SetAttributeValue直接修改的方式不对,这类Web.config中的配置节(比如sessionState)需要通过应用的配置对象来操作,具体步骤如下:
正确代码示例
using Microsoft.Web.Administration; // 已有的创建应用代码 string new_app_path = @"C:\inetpub\wwwroot\Test"; Application new_parent_app = target_trial_site.Applications.Add("/Test", new_app_path); new_parent_app.ApplicationPoolName = "DefaultAppPool"; // 获取该应用的Web配置对象 Configuration appConfig = new_parent_app.GetWebConfiguration(); // 定位到system.web/sessionState配置节(对应你截图中的Cookie超时设置) ConfigurationSection sessionStateSection = appConfig.GetSection("system.web/sessionState"); // 设置超时时间(单位:分钟,示例为720分钟即12小时) sessionStateSection["timeout"] = TimeSpan.FromMinutes(720); // 保存配置更改 appConfig.CommitChanges();
关键说明
SetAttributeValue仅适用于修改应用自身的基础属性(如虚拟路径、应用池名称),Web.config中的配置节必须通过GetWebConfiguration()获取配置对象后操作。- 如果需要修改的是Forms认证Cookie超时(而非Session Cookie),则定位到对应配置节修改:
ConfigurationSection formsSection = appConfig.GetSection("system.web/authentication/forms"); formsSection["timeout"] = TimeSpan.FromMinutes(60); appConfig.CommitChanges();
内容的提问来源于stack exchange,提问作者el toro
相关产品推荐
相关产品推荐

