IIS7 处理程序映射从站点配置迁移到服务器配置

IIS7 处理程序映射从站点配置迁移到服务器配置

我们有许多网站在运行,它们的 web.config 文件中有大约 8 个处理程序映射。不幸的是,每次添加新映射时,它们都会被复制到各个网站。

现在是时候将它们从所有 web.config 中取出并放入服务器的处理程序映射中了。

如果我将映射添加到服务器,而该映射仍存在于 web.config 中,则当您浏览该站点时,IIS 会抛出错误。我这里有几十个 web.config 需要编辑,每个大约有 10 个映射。

有没有办法将这些映射添加到服务器,而不必手动编辑每个 web.config 文件?否则,当我进入每个文件并删除处理程序时,每个站点都会停机几分钟。

谢谢!

答案1

如果您手动执行此操作,您真的别无选择。即使您一次只通过 UI 进行一个处理程序映射,您也必须同时安装站点和全局处理程序(尽管很短暂),或者删除本地站点处理程序然后重新添加到全局设置中。

您当然可以使用以下命令编写脚本appcmd.exe

http://www.iis.net/ConfigReference/system.webServer/handlers

例如:

要从网站中删除处理程序(我使用默认网站作为示例)-

appcmd set config "Default Web Site" -section:system.webServer/handlers /-"[name='MyHandler']"

要将处理程序添加到全局或“APP HOST”配置:

appcmd set config -section:system.webServer/handlers /+"[name='MyHandler',
    path='*.mything',modules='MyApp.MyHandler',preCondition='integratedMode',
    resourceType='Unspecified',verb='GET,HEAD,POST']" 
    /commit:apphost

我把上面的命令分成四行只是为了使其更易读,但实际上它应该只有一行。

使用脚本意味着您的中断时间将在一分钟左右而不是几分钟。

相关内容