使用脚本切换网站的物理路径
自动切换 IIS 网站的物理位置。
目录
引言
如果同时处理多个发布版本,每次手动更改 IIS 虚拟目录设置以指向不同的文件夹会变得非常繁琐。当网站下有多个虚拟目录时,由于打字错误,也容易出错,导致无法正确切换物理位置。本文档展示了如何切换 IIS 6.0 网站的元数据,并使用 iiscnfg.vbs 脚本自动切换。
问题
假设公司 TheProductCompany
的网站是 http:\\theproductcompany.com。通常,TheProductCompany
每季度通过其网站发布新产品。
为了简化编码,并使与每个季度对应的各种发布版本开发工作能够并行进行,网站的物理位置逻辑上映射为:d:\theproductcompany_Q1、d:\theproductcompany_Q2 等,表示不同“季度”的代码。为了支持代码签入到多个发布版本,TheProductCompany
在其源代码管理中使用多个分支。
现在,开发人员 John 正在处理所有这些网站。他发现每次需要在这些不同的发布版本上处理各种需求时,每次都去 IIS 并手动更改与网站关联的物理位置(例如 d:\theproductcompany_Q1、d:\theproductcompany_Q2、...Q3 等)非常耗时。
在专业环境中,您的主网站下可能有许多虚拟目录,每个目录都遵循类似的文件夹结构。这真的会变得非常繁琐且容易出错。
解决方案
首先,我们需要像往常一样设置虚拟目录的物理路径。我们需要导出此配置。下次,当我们切换到 d:\theproductcompany_Q2 并想要切换回 d:\theproductcompany_Q1 时,我们需要导入已经导出的设置。这可以通过以下方式导出/导入 IIS 元数据来实现。
导出设置
首先,我们需要导出当前的 IIS 元数据/设置。
可以通过两种方式进行
通过 IIS 手动导出
- 打开 IIS
- 在您的网站上,右键单击并选择“所有任务”。单击“将配置保存到文件”(见图 1)
- 输入文件名(对于我们的示例 - 图 2 -:我输入了 d:\myproduct.xml)
使用 iisconfig.vbs 文件导出
语法如下
iiscnfg /export/f [Path\]FileName.xml/sp SourcePath [/d EncryptingPassword]
[/inherited] [/children] [/s Computer [/u [Domain\]User [/p Password]]]
导入设置
现在,每当我们需要切换时,只需导入
iiscnfg /import /f [Path\]FileName.xml /sp SourcePath /dp DestiniationPath
[ /d EncryptingPassword] [ /inherited ] [ /children ] [ /merge ][ /s Computer
[ /u [Domain\]User [ /p Password]]]
因此 John 现在可以导入
iiscnfg /import /sp /lm/w3svc /dp /lm/w3svc /children /f d:\myproduct.xml;