代码之家  ›  专栏  ›  技术社区  ›  Mike Atlas

如何在iis7 AppCmd工具中使用iis6样式的元数据库路径?

  •  2
  • Mike Atlas  · 技术社区  · 14 年前

    我目前正在升级使用 iisvdir tool to create/modify/update apps and virtual directories,and replacing them with appCmd for iis7.

    iis6,“iisvdir”命令引用元数据库中的路径,例如, /w3svc/1/root/myapp -where 1 is id of“default web site”。该命令实际上并不需要站点的显示名称来对其进行更改。

    这很好,因为在另一种语言的操作系统上,“默认网站”的网站名称可以命名,例如,“________”或其他与此相关的名称。但是,如果appcmd只能通过其名称引用“默认网站”,而不是非语言中性标识符,那么这种灵活性就丧失了。

    那么,我如何编写AppCmd脚本来引用使用非语言标识符的站点、vdir和应用程序来引用“默认应用程序站点”?

    也许我需要从一开始就开始创建我自己的站点,并将其命名为其他特定的站点,然后停止使用“默认网站”作为根目录?

    (披露:我目前只有一台iis7英语机器,但我有两台iis6英语和iis6日语机器来测试我的旧脚本-所以它可能只是“默认网站”仍然在iis7日语上?)IISVdir 用于创建/修改/更新应用程序和虚拟目录的工具,并将其替换为 AppCmd IIS7。

    iis6,“iisvdir”命令引用来自元数据库的路径,例如, /W3SVC/1/ROOT/MyApp -其中1是“默认网站”的ID。该命令实际上并不需要站点的显示名称来对其进行更改。

    这很好,因为在另一种语言的操作系统上,“默认网站”的网站名称可以命名,例如,“________”或其他与此相关的名称。但是,如果appcmd只能通过其名称引用“默认网站”,而不是通过语言无关的标识符,那么这种灵活性就丧失了。

    那么,我如何编写AppCmd脚本来引用使用非语言标识符的站点、vdir和应用程序来引用“默认应用程序站点”?

    也许我需要从一开始就开始创建我自己的站点,并将其命名为其他特定的站点,然后停止使用“默认网站”作为根目录?

    Example of it in Japanese

    (披露:我目前只有一台iis7英语机器,但我有两台iis6英语和iis6日语机器来测试我的旧脚本-所以它可能只是“默认网站”仍然在iis7日语上?)

    1 回复  |  直到 14 年前
        1
  •  3
  •   Community Maksym Gontar    7 年前

    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();
    }