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

发布于 2024-10-12 21:55:27 字数 392 浏览 5 评论 0原文

我可以使用“mkiisdir”创建虚拟目录,但它仅在默认网站下创建。

通过使用 IISServer 属性,它在我的测试环境中工作正常,但在生产环境中却不行。

场景 1(测试环境)

  1. IIS 有 2 个网站,其中 1 个托管在 80 上 & 其它
  2. 88.使用属性 IIServer='localhost' & port ='88',它创建虚拟 右侧网站下的目录

场景 2(生产环境)

  1. IIS 有 2 个网站,其中 1 个托管在 80 上 &其他在 80 上也是如此,但具有不同的主机头。

我应该为 IISServer 使用什么值?端口,以便在带有主机标头的网站下创建虚拟目录。

I am able to create a virtual directory with 'mkiisdir', but it creates under default website only.

With using IISServer attribute it works fine in my test environment but not in Production env.

Scenario 1 (Test env)

  1. IIS with 2 websites, 1 hosted on 80
    & other on 88.
  2. Use attribute IIServer='localhost' &
    port ='88', it creates the virtual
    directory under the right website

Scenario 2 (Production env)

  1. IIS with 2 websites, 1 hosted on 80
    & other as well on 80 but with a different hostheader.

What value should i use for IISServer & port so that virtual directory gets created under the website with the host header.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

听风念你 2024-10-19 21:55:28

我知道这篇文章很旧,但我们最近遇到了同样的问题。如果您使用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=""/site.name:${websiteName}""/>
        <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”的应用程序该服务器上的网站。

这将创建一个应用程序,但您也可以通过简单地将 更改为 < 来创建普通虚拟目录/代码>。有关更多信息和选项,您可以在此处了解更多信息< /a>.

我希望这能帮助其他同样陷入同样困境的人!

I know this post is very old but we recently encountered the same problem. If you are using IIS 7 (or above) then there is a work-around. You can use AppCmd.exe that comes with IIS 7 to perform lots of different actions, in your case create Applications under different web sites.

You could create a sample Nant task (macro):

  <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=""/site.name:${websiteName}""/>
        <arg value="/path:${vdir}" />
        <arg value="/physicalPath:${physicalPath}" />
        <arg value="/apppool.name:${appPool}" />
      </exec>

    </sequential>
  </macrodef>

Then you can simply call it with something like this:

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

This would create an application named "MyApp" inside the "SomeOtherWebsite" web site on that server.

This creates an application but you could also create a plain virtual directory by simply changing <arg value="APP" /> to <arg value="VDIR" />. For more information and options you can read more here.

I hope that helps some other people who are also stuck in the same position!

如此安好 2024-10-19 21:55:28

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

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

Specify iisserver parameter and identify your site be hostname:port combination

<mkiisdir iisserver="host:port" dirpath="c:\siteroot\test" vdirname="Test" />
任性一次 2024-10-19 21:55:28

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

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

应该可以正常工作

You can specify website as a parameter to mkiisdir

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

Should work fine

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文