Configuring IIS

  • 2/2/2020 2:37:18 PM

  • About 3 minutes to read

Internet Information Services or IIS is a web server developed by Microsoft for Windows operating systems. Plato works great on all versions of IIS that support hosting .NET core 3.x applications.

In this document we'll show you all the steps necessary to configure Plato to run under a new web site within IIS. Following the steps within this document will allow you to then access the Plato web based set-up within your browser.

Install the .NET Core 3.1 Hosting Bundle

INFO Plato currently targets .NET Core 3.1. You should install the .NET Core 3.1 hosting bundle when working with Plato within IIS.

The .NET Core Hosting Bundle contains the ASP.NET Core Module for IIS. The ASP.NET Core Module will need to be registered within IIS so be sure to install the .NET Core Hosting Bundle after you've installed IIS.

Download Hosting Bundle

Navigate to the Direct download (current version) section to download the latest version of the .NET Core Hosting Bundle. Plato requires version 3.1.1 of the Hosting Bundle. After the .NET Core Hosting Bundle installer completes you should see confirmation everything was successful.

Once you've downloaded the .NET Core 3.1 hosting bundle to your web server execute the MSI as shown below...


Accept the terms and click Install.

IMPORTANT The .NET Core Hosting Bundle requires Windows Server 2008 R2 or above. After installing the .NET Core Hosting Bundle you will need to restart IIS via a iisreset command from the command line so you may wish to schedule this update to minimise disruption.

After you've installed the .NET Core Hosting Bundle and restarted IIS it's time to create a website for your Plato installation within IIS.

Configuring IIS

  1. Create a new web site. Within IIS right click the Sites folder on the left and click Add Website as shown below...


  1. Provide a name for your web site and point the physical path to a new empty folder for your Plato installation. We will need to publish or deploy Plato to this IIS folder during the deployment phase.


IMPORTANT Make a note of the name you use for your web site. You will need to know this name when deploying Plato using web deploy.

  1. Within expand your server name on the left and click Application Pools. Locate the application pool created via step 2 and double click the application pool. Ensure the .NET CLR version drop down for the application pool is set No Managed Code as shown below...


ASP.NET Core runs in a separate process and manages the run time. ASP.NET Core doesn't rely on loading the desktop CLR (.NET CLR)—the Core Common Language Runtime (CoreCLR) for .NET Core is booted to host the app in the worker process. Setting the .NET CLR version to No Managed Code is optional but recommended.

  1. Confirm the process model identity for your Plato application pool has the proper permissions.

If the default identity of the app pool (Process Model > Identity) is changed from ApplicationPoolIdentity to another identity, verify that the new identity has the required permissions to access the app's folder, database, and other required resources. For example, the app pool requires read and write access to folders where the app reads and writes files.

The application pool identity will only need write permissions to the "Logs", "Sites" and key management folders for your Plato installation.

Deploy Plato

To deploy Plato to the IIS physical path folder that was established when creating the IIS site above we would suggest using Web Deploy built into Visual Studio 2019 or using dotnet publish. Web Deploy is the recommended mechanism for deployment. To learn how to publish Plato via Visual Studio & web deploy please see Web Deploy.

NOTE ⚡ If you've purchased a self-hosted license for Plato you will receive access to pre-packaged already published supported releases you can deploy right into your production IIS site. You should only need to publish Plato manually if your using a free version of Plato or you've customised the Plato source code.

Alternatives to Web Deploy

Use any of several methods to move Plato to the hosting system, such as manual copy, Xcopy, Robocopy, or PowerShell.

Hosting model

Plato uses the in-process hosting model as this offers the best possible performance.

Can we improve this doc? Login or register to tell us how
Your Feedback
In this doc