liveBook · Manning

Internet Information Services

As explained in ASP.NET Core in Action, 3e

Internet Information Services is Microsoft's extensible web server platform for hosting web applications and services on Windows.

Internet Information Services (IIS) is a Windows host for web applications. An ASP.NET Core app can be published to an IIS website so users can reach it at the website’s configured URL. IIS is one deployment option, not a requirement for ASP.NET Core. section 27.0 section 27.2.1

IIS was tightly coupled to older ASP.NET, helping tie that framework to Windows. ASP.NET Core is cross-platform. When deployed to IIS, it uses the ASP.NET Core Module to connect IIS and the application. section 2.2 section 27.2.1

For a basic ASP.NET Core deployment on Windows:

  • Install the ASP.NET Core Windows Hosting Bundle. It includes the .NET Runtime, ASP.NET Core Runtime, and IIS AspNetCore Module; install it on a development machine too if you run IIS there. section 27.2.1
  • Create an IIS application pool with its .NET CLR version set to No Managed Code. Unlike older ASP.NET, ASP.NET Core does not use a .NET Framework managed pool. section 27.2.1
  • Add an IIS website, select that pool, and set the website name, published-files folder, and URL. The application pool needs permission to access the publish folder. section 27.2.1
  • Publish the app, then copy its published files to the website’s hosting folder. section 27.2 section 27.2.2

Publish before copying

Run `dotnet publish --output publish_folder --configuration Release`, then copy the output to the folder configured for the IIS website. A local example uses IIS at `http://localhost:81`. section 27.2.2

IIS integration is added automatically when an app uses WebApplicationBuilder. A custom builder must add it explicitly: UseIIS() supports in-process hosting, while UseIISIntegration() supports out-of-process hosting. In-process hosting has been the IIS default since ASP.NET Core 3.0; the app runs inside the IIS process rather than in a separate process behind it. section 27.2.2

This setup gets an app running; it is not a complete guide to IIS configuration or troubleshooting. IIS can manage an ASP.NET Core deployment on Windows, while other hosting choices remain available. section 27.2 section 27.0

How ASP.NET Core in Action, 3e covers it

How deep it goes
Walks through a basic deployment and hosting-model distinction, but defers comprehensive IIS configuration and troubleshooting.
Examples
Uses a No Managed Code application pool, a configured IIS website, a dotnet publish command, and a localhost deployment.
What it assumes
Assumes an ASP.NET Core app to publish; introduces the basic IIS hosting requirements without requiring prior IIS configuration expertise.
What you can do after
Operate/configure it to host a published ASP.NET Core app through an IIS website on Windows.
How it connects
Connects IIS to ASP.NET Core, reverse proxies, application pools, the Windows Hosting Bundle, and in-process hosting.

Also explained in

Compare how 2 books explain Internet Information Services →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of ASP.NET Core in Action, 3e. The section links point to the parts of the book it draws on.