使用NANT在特定网站下创建虚拟目录

时间:2011-01-19 09:48:32

标签: xml nant

我可以使用'mkiisdir'创建一个虚拟目录,但它只在默认网站下创建。

使用IISServer属性,它在我的测试环境中工作正常,但在生产环境中没有。

场景1(测试环境)

  1. IIS有2个网站,1个托管在80 &安培;其他在88。
  2. 使用属性IIServer ='localhost'& port ='88',它创建虚拟 右侧网站下的目录
  3. 情景2(制作环境)

    1. IIS有2个网站,1个托管在80 &安培;另外还有80,但有不同的主机头。
    2. 我应该为IISServer使用什么值? port,以便在具有主机头的网站下创建虚拟目录。

3 个答案:

答案 0 :(得分:2)

我知道这篇文章很老但我们最近遇到了同样的问题。如果您使用 IIS 7(或更高版本),则可以解决此问题。您可以使用IIS 7附带的AppCmd.exe执行许多不同的操作,例如,在不同的网站下创建应用程序。

您可以创建一个示例Nant任务(宏):

  <macrodef name="Install.App">
    <attributes>
      <attribute name="websiteName" default="Default Web Site" />
      <attribute name="vdir" />
      <attribute name="physicalPath" />
      <attribute name="appPool" default="DefaultAppPool" />
    </attributes>

    <sequential>
      <exec program="c:\windows\System32\InetSrv\appcmd.exe" workingdir="${project::get-base-directory()}" verbose="true" failonerror="false" >
        <arg value="ADD"/>
        <arg value="APP" />
        <arg value="&quot;/site.name:${websiteName}&quot;"/>
        <arg value="/path:${vdir}" />
        <arg value="/physicalPath:${physicalPath}" />
        <arg value="/apppool.name:${appPool}" />
      </exec>

    </sequential>
  </macrodef>

然后你可以用这样的东西来调用它:

<Install.App websiteName="SomeOtherWebsite" vdir="/MyApp" physicalPath="C:\apps\myapp" appPool="MyAppPool" />

这将在该服务器上的“ SomeOtherWebsite ”网站内创建名为“ MyApp ”的应用程序。

这会创建一个应用程序,但您也可以通过将<arg value="APP" />更改为<arg value="VDIR" />来创建纯虚拟目录。有关更多信息和选项,您可以read more here

我希望能帮助其他一些同样处于同一位置的人!

答案 1 :(得分:0)

指定iisserver参数并将您的站点标识为主机名:端口组合

<mkiisdir iisserver="host:port" dirpath="c:\siteroot\test" vdirname="Test" />

答案 2 :(得分:-1)

您可以将网站指定为mkiisdir的参数

<mkiisdir iisserver="host" website="${project.service.iiswebsite}" " dirpath="c:\siteroot\test" vdirname="Test"/>

应该可以正常工作