A practical example of using web application deployment package with IIS7

Web Development Tools Microsoft

When a zip package is built from VS2010 web application UI (via Build Deployment Package command), or through command line (msbuild myproject.csproj /t:package), a few files are generated in the destination folder. Here’s some brief description:

File Name Description
myApp.deploy-readme.txt Read me file of how to use myApp.deploy.cmd.
myApp.deploy.cmd The auto generated command file which can be used in many situations.  Check MSDN topic for details.
myApp.SetParameters.xml The parameter file that user can modify to affect deployed IIS application, such as IIS application name, connection string etc.  Check MSDN topic for more details.
myApp.SourceManifest.xml The source manifest file that VS uses to compile the package via web deploy.  Not useful after the package is generated.  But user can have a quick peek on what web deploy provider is used when generating package.
myApp.zip The package zipped file

 

It’s very common to deploy our package to a IIS7 virtual application under Default Web Site.  Since web deploy can generate a virtual application if it’s not exist, we can use the following options:

1. Manually import the zip file from IIS manager and change the “Application Path” in the “Import Application Package” Wizard.  (Import a Package through IIS Manager )

2. Change myApp.SetParameters.xml node value of parameter “IIS Web Application Name”:

<setParameter name=”IIS Web Application Name” value=”Default Web Site/test1″ />

Then run “AppServer.cmd /y” from command line

3. In command line or batch file

Set _ArgMsDeployAdditionalFlags=-setParam:”IIS Web Application Name”=”Default Web Site/test1″

AppServer.cmd /y

Set _ArgMsDeployAdditionalFlags=

4. One line command to deploy the package create virtual application under default web site:

“D:Program FilesIISMicrosoft Web Deploymsdeploy.exe” -verb:sync -source:package=WebApplication4.zip -dest:auto -setParam:”IIS Web Application Name”=”Default Web Site/test2″

 

Similarly, if we want to create a new website in IIS7 binding to a new port on a machine, name it AppServer, and deploy our package to it, we can use the following options:

1. Create the new website manually in IIS manager and import package from IIS manager.  All we need is the zip file on the machine.

2. In command line or batch file:

md D:inetpubwwwrootAppServer

D:WindowsSystem32inetsrvappcmd add site /name:AppServer /id:22 /bindings:http/*:8090: /physicalPath:D:inetpubwwwrootAppServer

Set _ArgMsDeployAdditionalFlags=-setParam:”IIS Web Application Name”=”AppServer”

AppServer.cmd /y

Set _ArgMsDeployAdditionalFlags=

Or make it a little bit fancy:

Set _ArgMsDeployAdditionalFlags=-presync:runCommand=”md D:inetpubwwwrootAppServer & D:WindowsSystem32inetsrvappcmd add site /name:AppServer /id:22 /bindings:http/*:8090: /physicalPath:D:inetpubwwwrootAppServer” -setParam:”IIS Web Application Name”=”AppServer”

AppServer.cmd /y

Set _ArgMsDeployAdditionalFlags=

3. One line command to create a new web site in IIS and deploy package to it.  All we need is the zip file on the machine.

“D:Program FilesIISMicrosoft Web Deploymsdeploy.exe” -verb:sync -presync:runCommand=”md D:inetpubwwwrootAppServer & D:WindowsSystem32inetsrvappcmd add site /name:AppServer /id:22 /bindings:http/*:8090: /physicalPath:D:inetpubwwwrootAppServer ” -source:package=WebApplication2.zip -dest:auto -setParam:”IIS Web Application Name”=”AppServer”

Hope this simple sample can generate more interest to use web deploy as packaging and deploying method.

 

Xinyang Qiu

Web Platform And Tools

0 comments

Discussion is closed.

Feedback usabilla icon