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.
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.
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
iisresetcommand 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.
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.
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.
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.
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.
Use any of several methods to move Plato to the hosting system, such as manual copy, Xcopy, Robocopy, or PowerShell.
Plato uses the in-process hosting model as this offers the best possible performance.