如何使用webdeploy定位已存在的应用程序池?

时间:2013-04-02 20:52:27

标签: msdeploy webdeploy microsoft-web-deploy

我正在尝试确保将我的应用部署到使用Web Deploy时已存在的特定应用程序池。在通过IIS管理器安装应用程序时,或者通过从Web包通过命令行安装时更改.setparameters.xml文件中的值,应由用户使用GUI配置应用程序池。将以下参数条目插入我的parameters.xml中并不起作用。

<parameter name="Application Pool" description="Application Pool for this site" tags="iisApp" defaultValue="ASP.NET v4.0">
    <parameterEntry kind="providerPath" scope="IisApp" match="applicationPool" />
</parameter>

有没有直接的方法来实现这一目标?如果没有,我将如何完成这项工作?

1 个答案:

答案 0 :(得分:7)

以下是我在SO和其他地方阅读大量文章后通过命令行或SetParameters.xml设置应用程序池的方法:

  1. 将Parameters.xml文件添加到项目中。

    <?xml version="1.0" encoding="utf-8" ?>
    <parameters>
      <parameter name="AppPool" defaultValue="ASP.NET 4.0">
        <parameterEntry kind="DeploymentObjectAttribute" scope="application" match="applicationPool/@applicationPool" />
      </parameter>
    </parameters>
    
  2. 创建包时,向msbuild添加两个参数:

    /P:IncludeIisSettings=true
    /P:IncludeAppPool=true
    
  3. 通过SetParameters.xml设置:

    <setParameter name="AppPool" value="Some AppPoolName"/>
    

    使用命令行参数(msdeploy*.deploy.cmd):

    "-setParam:'AppPool'='Some AppPoolName'"