Installer Hosting Options
  • 10 May 2022
  • 3 Minutes to read
  • Dark
    Light

Installer Hosting Options

  • Dark
    Light

Article Summary

Version 7.x .NET Architecture Change:
Versions 7.0.1 - 7.1 require .NET Core 3.1
Versions 7.2 - 7.9 require .NET 5
Versions 7.10+ require .NET 6

Impact on Upgrades: 

  • ALL custom libraries will need to be recompiled for the new .NET architecture.
  • Custom assemblies will need to be re-written.
  • Modules may require reinstallation or design refactoring.



Overview

The updated .NET architecture in v7.x introduces two web app hosting options during installation: Self Hosting and Internet Information Services (IIS) Hosting. This article reviews the considerations for each option, as well as manual setup for IIS Hosting.


Self Hosting Considerations

  • Installing .NET 5.0 Runtimes leverages Kestrel, the web server included by default, to host as a Windows Service. 
  • Portal URLs with a virtual directory e.g. domain/decisions currently require IIS hosting to preserve in-flight tasks on upgrade.
  • The absence of IIS requires Windows Firewall ports ("80, 443", etc) to be opened manually.  
  • While this option supports HTTPS and HTTP/2, it does not allow Port Sharing.

Self Hosted Diagram

Self Hosting does not require any additional setup; this makes it the recommended option for Root Platform Installations (ex. "http://domain.com").

The following diagram demonstrates the how a Self Hosted Decisions environment interacts with elements such as the Decisions Server, Database, File Storage, and External Integrations (such as Web and REST Services, and External Databases).


IIS Hosting Considerations

Internet Information Services (IIS) Hosting uses the ASP.NET Core Hosting Bundle -- which requires the latest Windows Updates or .NET Framework 4.8 to run -- for app hosting.  This installs v7 as an IIS Manager Application Pool (App Pool) with the following features:

  • Virtual Directory Support
  • No Windows Service
  • PortSharing support

The following chart describes considerations for each of these features.

FeatureConsideration
Virtual Directory Support

Platforms that use Portal URLs with virtual directories (ex."domain/decisions") require IIS Hosting.

No Windows Service (such as Service Host Manager)

Restarting IIS Hosted v7 environments requires recycling the App Pool or an administrative level Windows command prompt to run the iisreset command with an optional/noforce parameter.

Port Sharing SupportPort Sharing requires a v7 IIS hosted installation.

In some environments, Port Sharing is used to allowing worker processes to utilize (ie. "share") the same port(s)

IIS Hosted Diagram 

The following diagram demonstrates how an IIS Hosted environment interacts with other elements  such as the IIS Application Pool (where the environment is hosted), Database, File Storage, and External Integrations (such as Web and REST Services, and External Databases). 


IIS Hosting Manual Setup

The following details how to manually set up IIS Hosting


Application Pool Configuration (Pre Platform Installation)

The IIS App Pool is used in conjunction with ASP.NET hosting module for server side functionality.

  1. Click Start, type IIS, and select Internet Information Services (IIS) Manager.
    No IIS Manager Available
    If the IIS Manager option does not appear, search the web to find OS specific installation instructions. 

  2. In the left Connections panel, expand the localhost Server Name beneath Start Page.
  3. Right-click Application Pools, then click Add Application Pool.
  4. Configure the Application Pool settings with the following, then click OK.
    Application Pool Settings 
    • Name: DecisionsApplicationPool
    • .NET CLR version: No Manage Code
    • Managed pipeline mode: Integrated
    • Enable Start application pool immediately



  5. Right-click DecisionsApplicationPool and select Advanced Settings.
  6. From the Advanced Settings window, set Start Mode to Always Running, Application Pool Identity to LocalSystem, and the Idle Time-Out (minutes) setting to "0".
    Avoiding ASP.NET Core Module Failure 
    Ensure the Enable 32-Bit Applications setting is set to False to prevent the ASP.NET Core Module from failing to load.

  7. Right-click DecisionsApplicationPool and select Recycling (or click the Actions Panel link).
  8. Configure the Application Pool Recycling Settings by disabling Fixed Intervals Regular time intervals(in minutes). Then click Next, and Finish.  

Application Initialization (Pre or Post Platform Installation)

The following setting (part 1 of 2) ensures the App Pool starts when the machine starts/restarts.  

To enable it:

  1. Minimize IIS Manager, click the Start button, then search for and open Server Manager.
  2. From the Server Manager window, click Manage (upper right corner), then click Add Roles and Features.
  3. From the Add Roles and Features Wizard, click Next through each screen to navigate to the Server Roles screen.
  4. Under Select Server Roles, enable Application Initialization via the path: Web Server > Application Development > Application Initialization.
  5. Click Next, then click Install to confirm installation selections.
  6. Click Close once complete

Application Preload (Post Platform Installation)

The following setting (part 2 of 2) ensures that the App Pool starts when the machine starts/restarts.\

To enable this: 

  1. Launch IIS Manager and locate the Connections panel (left side of screen).
  2. Expand the local host server's name beneath Start Page, then expand Sites.
  3. Click Manage Application > Advanced Settings.
  4. Set Preload Enabled to True, then click OK.

Was this article helpful?