You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过TFS发布模板设置IIS应用程序池StartMode为AlwaysRunning

解决TFS发布时设置IIS应用池StartMode为AlwaysRunning的问题

别担心,这个问题完全可以解决!你的困扰主要来自两个方面:命令语法的小失误,以及IIS配置节被锁定的默认限制,咱们一步步来搞定它:

1. 修正appcmd命令的语法

你之前的命令错误地指定了站点路径,但修改应用池配置不需要关联站点——应用池是独立的配置实体。正确的命令应该是下面两种之一:

简化写法(更直观)

appcmd set apppool "$(TestSite_AppPool)" /startMode:AlwaysRunning

完整config节写法

appcmd set config -section:applicationPools /[name='$(TestSite_AppPool)'].startMode:AlwaysRunning

原来的命令里加入"Default Web Site/Test"是多余的,这会导致命令定位错误,先把这个问题修正。

2. 解锁被锁定的IIS配置节

报错提示的"This configuration section cannot be used at this path",是因为system.applicationHost/applicationPools节默认被IIS锁定了,不允许直接通过站点级的配置修改。你需要先解锁这个节,有两种方式:

方法一:通过IIS管理器图形界面解锁

  • 打开IIS管理器,点击最顶层的服务器节点(不是站点或应用池)
  • 在右侧功能视图中找到配置编辑器
  • 在配置编辑器的下拉菜单中选择system.applicationHost/applicationPools
  • 点击右侧的解锁节按钮,确认操作即可

方法二:直接修改applicationHost.config文件

  • 找到IIS的核心配置文件:C:\Windows\System32\inetsrv\config\applicationHost.config(需要管理员权限打开)
  • 搜索找到<section name="applicationPools"这一行,将其中的overrideModeDefault="Deny"改为overrideModeDefault="Allow"
  • 保存文件,重启IIS服务(可选,通常修改后立即生效)

3. 在TFS发布模板中整合操作

你可以把这些步骤整合到TFS发布流程里,避免手动操作:

  • 在TFS发布模板中添加一个命令行或PowerShell任务,确保任务以管理员权限运行
  • 如果需要确保目标服务器的配置节已解锁,可以先执行解锁命令(建议只运行一次,或者添加判断逻辑避免重复执行):
    appcmd unlock config /section:applicationHost/applicationPools
    
  • 接着执行修正后的设置应用池StartMode的命令,也就是前面提到的两种正确写法之一

这样每次发布时,TFS会自动帮你设置好应用池的StartMode,不用再手动修改了。

内容的提问来源于stack exchange,提问作者tom33pr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:31:56