Setting up Web Deploy on a client

Setting up Web Deploy is pretty easy. Make sure you download the right version, x86 or x64. The latest version of Web Deploy as of this date is 1.1:

If you need other server components (such as IIS Manager), you can use the Web Platform Installer to download them (it also supports installing Web Deploy).

image[9]

Once the MSI installer starts, I recommend choosing the Custom option, because this will reveal more about the tool:

image

What are all these pieces? I will cover this topic in more detail in the next post about Web Deploy architecture, but briefly:

  • *IIS Manager UI Module *= an IIS extension which shows UI in IIS to import/export packages created using Web Deploy. Little known fact: it also adds a right-click option on sites and apps to recycle the app or clear its contents.

  • *IIS 7 Deployment Handler *= You only need this piece for server setup, which is why it’s unchecked, and really only when you are setting up a shared hosting environment (or if you don’t want to make the person doing the deployment to be an administrator on the target computer, but you need them to be able to execute some Web Deploy actions that require administrative privileges). This component integrates with the Windows Management Service (WMSvc), IIS’s uber-remoting and authentication service. We will revisit this later when we talk about setting up the server side of Web Deploy. You only see this option if WMSvc is installed.

    • Management Service Delegation UI = This is an IIS Extension which allows you to create rules for what specific actions users can take with Web Deploy that require administrative privileges (see section above). You only see this option if WMSvc is installed. It’s a fairly basic editor on top of the system.webserver management delegation configuration section in administration.config.
  • Remote Agent Service: You only need this piece for server setup, which is why it’s unchecked. This is an alternative to the above two components. It is a Windows service (msdepsvc) which works downlevel on IIS 6 (which does not have WMSvc), and requires the connecting user to be an administrator on the target machine.

So now you know: Web Deploy can connect over WMSvc (for delegated access scenarios) or msdepsvc (for administrative access scenarios).

If you click Next, Web Deploy will install. You can start using it from the command line (type ‘web deploy’ in the Start Menu). Let’s navigate to the installation directory:

image

I will be talking about Microsoft.Web.Deployment.dll (MWD for short), which is the framework component msdeploy.exe uses to do all its magic. The cool thing is that you can write your own .NET apps which use this library.