Explain InProcess and OutOfProcess ASP.NET Core Hosting?

In general, there are two modes in which an ASP.NET Core application can run, when deployed in IIS.

In-Process model:

  • The application is hosted inside the IIS process and all the functioning happens from here. This is similar to any other general website deployed in IIS (through binaries).

Out-Of-Process model:

  • The application resides within the Kestrel Shell layer, and the IIS server acts as a reverse-proxy - all the requests travel from within the IIS Web server which is available to the outside internet, and the proccessing happens within the Kestrel.

How do you specify?

  • To explicitly specify the mode we want our application to run, we provide it inside our Web project CSPROJ file. It can look something like this
<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
    <AspNetCoreModuleName>AspNetCoreModule</AspNetCoreModuleName>
  </PropertyGroup>

  .... other config ....
</Project>
  • If we don't specify the type of hosting model we're into, the ASP.NET Core bundle hosts the application in an In-Process manner.

In general, there are two modes in which an ASP.NET Core application can run, when deployed in IIS.

In-Process model:

  • The application is hosted inside the IIS process and all the functioning happens from here. This is similar to any other general website deployed in IIS (through binaries).

Out-Of-Process model:

  • The application resides within the Kestrel Shell layer, and the IIS server acts as a reverse-proxy – all the requests travel from within the IIS Web server which is available to the outside internet, and the proccessing happens within the Kestrel.

How do you specify?

  • To explicitly specify the mode we want our application to run, we provide it inside our Web project CSPROJ file. It can look something like this
<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
    <AspNetCoreModuleName>AspNetCoreModule</AspNetCoreModuleName>
  </PropertyGroup>

  .... other config ....
</Project>
  • If we don’t specify the type of hosting model we’re into, the ASP.NET Core bundle hosts the application in an In-Process manner.
Ram
Ram

I'm a full-stack developer and a software enthusiast who likes to play around with cloud and tech stack out of curiosity. You can connect with me on Medium, Twitter or LinkedIn.

Privacy Overview
Referbruv

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.

Strictly Necessary Cookies

Strictly Necessary Cookie should be enabled at all times so that we can save your preferences for cookie settings.

3rd Party Cookies

This website uses Google Analytics to collect anonymous information such as the number of visitors to the site, and the most popular pages.

Keeping this cookie enabled helps us to improve our website.