【问题标题】:Associate an application pool to site with appcmd使用 appcmd 将应用程序池与站点相关联
【发布时间】:2011-05-27 02:53:50
【问题描述】:

我想通过命令行使用 appcmd 创建一个站点。

如何将特定应用程序池关联到站点?

为了创建一个站点,我是这样写的:

appcmd add site /name:"prova" bindings:http://localhost:8080 /physicalPath:c:\sites\prova

【问题讨论】:

  • 命令在bindings之前需要一个正斜杠,就像这样appcmd add site /name:"prova" /bindings:http://localhost:8080 /physicalPath:c:\sites\prova

标签: iis configuration iis-7 appcmd


【解决方案1】:

你可以这样做:

APPCMD.exe set app "prova/" /applicationPool:"YOUR_APP_POOL_NAME_HERE"

注意prova 后面的斜杠,这很重要。

例如,如果我想将prova 的应用程序池设置为DefaultAppPool,我会发出以下命令:

APPCMD.exe set app "prova/" /applicationPool:"DefaultAppPool"

从下面 Chris 的评论中选择,如果您的站点中有一个现有的应用程序,请说 /mybloggy 并且您希望更改它所属的应用程序池,那么您将发出以下命令:

APPCMD.exe set app "prova/mybloggy" /applicationPool:"DefaultAppPool"

【讨论】:

  • 我在默认网站下有应用
  • 应用名称的语法设置为 app "/"。当我尝试为我的站点中的应用程序设置应用程序池时,这个答案让我大吃一惊。
  • @Chris - 是的,如果您在站点根目录下已经有一个应用程序,例如/mybloggy,就是这种情况。给出的示例设置站点根 (/) 应用程序的应用程序池。我已经更新了我的答案以使这一点更清楚。
  • 你能帮助理解如何在默认网站下启动应用程序吗?在某些情况下,我可以启动默认网站,我需要手动启动站点下的 Web 应用程序,因此需要使用 appcmd.exe 自动启动它。
  • @Majedur 谢谢!
【解决方案2】:

替代语法:

APPCMD.exe set site /site.name:"Site name" /[path='/'].applicationPool:"App Pool Name"

在 Windows Server 文档中找到: https://technet.microsoft.com/en-us/library/cc732992(v=ws.10).aspx

【讨论】:

    【解决方案3】:

    虽然 OP 希望在“添加站点”命令中分配应用程序池,但我找不到将其包含在原始“添加站点”命令中的方法。我使用上面 Kev 的语法使用“添加站点”,然后使用“设置站点”使其工作。

    另一方面,如果您需要在该“站点”下添加“应用程序”,您可以指定应用程序当您使用带有 applicationPool 参数的“添加应用程序”命令时,池如下所示:

    APPCMD add app /site.name:"prova" /path:/App1 /physicalPath:c:\sites\prova\App1 /applicationPool:"provaAppPool"
    

    附言您可能需要在 APPCMD 前面加上 %systemroot%\system32\inetsrv\ 并调用

    %systemroot%\system32\inetsrv\APPCMD /site.name:"prova"...
    

    【讨论】:

      最近更新 更多