我目前正在升级使用IISVdir工具创建/修改/更新应用和虚拟目录的旧II6自动化脚本,并将其替换为IIS7的AppCmd。
IIS6,“IISVDir”命令引用来自元数据库的路径,例如/W3SVC/1/ROOT/MyApp
- 其中1是“默认网站”的ID。该命令实际上不需要站点的显示名称来对其进行更改。
这很有效,因为在不同的语言操作系统上,可以命名“默认网站”站点名称,例如“既定のWebサイト”或其他任何内容。但是,如果AppCmd只能通过其名称引用“默认网站”而不是语言中性标识符,则会失去这种灵活性。
那么,如何使用语言中性标识符来引用AppCmd引用网站,vdirs和应用程序以引用“默认应用程序站点”?
也许我需要从一开始就创建自己的网站,并将其命名为其他特定内容,并停止使用“默认网站”作为根目录?
(披露:我目前只有一台IIS7英语机器,但我有IIS6-English和IIS6-Japanese机器来测试我的旧脚本 - 所以也许它只是“默认网站”仍然在IIS7-日语?)
答案 0 :(得分:3)
APPCMD工具仅显示网站名称(主要是)。关于完全相同的问题,我在服务器故障上问了一个类似的问题:
How do I reference a site by ID using IIS7 APPCMD? (ServerFault.com)
如果您想通过ID开始使用该网站,则需要以编程方式执行此操作,例如:
int iisNumber = 1; // The default website
using (ServerManager serverManager = new ServerManager())
{
var site = serverManager.Sites
.Where(s => s.Id == iisNumber)
.SingleOrDefault();
if(site != null)
{
site.Stop();
// Do stuff to site...
site.Start();
}
serverManager.CommitChanges();
}