How do I target an already existing application pool with webdeploy?

Vish picture Vish · Apr 2, 2013 · Viewed 7k times · Source

I am trying to make sure that my app gets deployed to a specific application pool that already exists when using Web Deploy. The application pool should be configurable by the user using the GUI when installing app through IIS Manager or by changing the value in the .setparameters.xml file when installing via the commandline from a web package. Inserting the following parameter entry into my parameters.xml doesn't do the trick.

<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>

Is there a straightforward way to accomplish this? If not, how would I go about getting this done?

Answer

absynce picture absynce · May 17, 2013

Here's what I did to set the application pool via command line or SetParameters.xml after lots of reading on SO and elsewhere:

  1. Add a Parameters.xml file to the project.

    <?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. Add two parameters to msbuild when creating the package:

    /P:IncludeIisSettings=true
    /P:IncludeAppPool=true
    
  3. Set via SetParameters.xml:

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

    OR

    Using command line parameter (msdeploy or *.deploy.cmd):

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