Publishing to IIS

By Rick Anderson and Luke Latham

Install the HTTP Platform Handler

If you need to enable IIS, see IIS server configuration.

Create Data Protection Registry Hive

To persist Data Protection keys you must create registry hives for each application pool to store the keys. You should use the Provisioning PowerShell script for each application pool you will be hosting ASP.NET 5 applications under.

For web farm scenarios developers can configure their applications to use a UNC path to store the data protection key ring. By default this does not encrypt the key ring. You can deploy an x509 certificate to each machine and use that to encrypt the keyring. See the configuration APIs for more details.

Publish from Visual Studio

  1. Create an ASP.NET 5 app. In this sample, I’ll create an MVC 6 app using the Web Site template under ASP.NET 5 Preview Templates.
  2. In Solution Explorer, right-click the project and select Publish.
../_images/p1.png
  1. In the Publish Web dialog, on the Profile tab, select File System.
../_images/fs.png
  1. Enter a profile name. Click Next.
  2. On the Connection tab, you can change the publishing target path from the default ..\..\artifacts\bin\WebApp9\Release\Publish folder. Click Next.
  3. On the Settings tab, you can select the configuration, target DNX version, and publish options. Click Next.

The Preview tab shows you the publish path (by default, the same directory as the ”.sln” solution file).

Deploy to IIS server

  1. Navigate to the publish folder (..\..\artifacts\bin\WebApp9\Release\Publish folder in this sample).
  2. Copy the approot and wwwroot directories to the target IIS server. Note: MSDeploy is the recommended mechanism for deployment, but you can use Xcopy, Robocopy or another approach. For information on using Web Deploy see Publishing to IIS with Web Deploy using Visual Studio 2015.
  3. In IIS Manager, create a new web site and set the physical path to wwwroot. You can click on Browse *.80(http) to see your deployed app in the browser. Note: The HTTP Platform Handler currently requires this work-around to support apps. If you get an HTTP error, see IIS server configuration.
../_images/b8.png

IIS server configuration

  1. Enable the Web Server (IIS) server role. In client operating systems (Windows 7 through Windows 10) select Control Panel > Programs > Programs and Features > Turn Windows features on or off, and then select Internet Information Services.
../_images/rs.png
  1. On the Role Services step, remove any items you don’t need. The defaults are shown below.
../_images/role-services.png
  1. Unlock the configuration section.

    • Launch IIS Manager and select the server in the Connections pane on the left (see image below).
    • Double-click Configuration Editor.
    • In the Section drop-down, select system.webServer/handlers, and then click Unlock Section.
../_images/config-edit.png ../_images/unlock.png
  • Set the application pool to No Managed Code. ASP.NET 5 runs in a separate process and manages the runtime.
../_images/appPool.PNG

Supported operating systems

The following operations systems are supported:

  • Windows 7 and newer
  • Windows 2008 R2 and newer

Common errors

The following is not a complete list of errors. Should you encounter an error not listed here, please leave a detailed error message in the DISQUS section below along with the reason for the error and how you fixed it.