Table of Contents

Legacy MVC — IIS Installation (deprecated)

Warning

This is the legacy installation path for FrontEnd Server deployments running on Windows Server / IIS / .NET Framework. New deployments must use the modern Docker / .NET 8 path documented in Installation. This page is preserved only for customers maintaining existing IIS-based installs.

The IIS installation path predates the React shell and the migration to .NET 8. It targets the legacy MVC pipeline where the FrontEnd Server returns server-rendered Razor HTML at ~/Display/<pageKey> URLs rather than the modern ~/app/<pageKey> JSON+SPA path.

If you are starting a new install or a new environment for an existing customer, skip this page and follow Installation. If a customer is still in the middle of migrating from this stack to the modern one, this page documents the legacy half they're leaving behind.

Prerequisites

  1. IIS installed with MVC .NET support
  2. Knowledge about MibConfigs
  3. MibPackages and MibDlls downloaded
  4. Database available to bootstrap
  5. Running instance of MibAuthorizationServer
  6. Running instance of MibServerApi

Migration: Generating Database

Every migration runs through mibmigrator from the MibDlls package. Three required config files:

  1. MibLogConfig
  2. MibDatabaseConfig
  3. MibConfigurableObjectConfig (can be a dummy)

Bootstrap the MibClient2 migration first, then the FrontEnd Server migration:

C:\MibDlls\MibMigrator\Migrator\mibmigrator.exe ^
  -assembly="C:\MibDlls\MibMigrator\MibClient2Migrations\MibClient2.MibDatabaseMigrations.dll" ^
  -configPath="C:\TestData\auth_migration\config"

C:\MibDlls\MibMigrator\Migrator\mibmigrator.exe ^
  -assembly="C:\MibDlls\MibMigrator\MibServerMigrations\MibServer3.MibDatabaseMigrations.dll" ^
  -configPath="C:\TestData\mib3_migration\config"

The migration assemblies and the runtime DLLs are interchangeable between the legacy and modern installs — the FrontEnd DB schema is the same regardless of which runtime serves it.

Installing and enabling MibServer3 (IIS)

  1. Extract MibServer3i.zip into C:\inetpub\wwwroot\<NAME>.
  2. In IIS Manager, right-click the folder → "Convert to app".
  3. Create a config folder inside the app root with the configuration files below.

Minimally required configuration files:

  1. MibLogConfig
  2. MibAuthorizationClientConfig
  3. MibApiClientConfig.mibconfig
  4. MibDatabaseConfig
  5. MibServer3BaseConfig.mibconfig — renamed MibCmsFrontEndServerBaseConfig.mibconfig in newer versions; either name works at runtime for back-compat
  6. MibTranslationConfig.mibconfig
  7. MibCacheConfig.mibconfig
  8. MibObjectCacheConfig.mibconfig

Register the FrontEnd Server as an OAuth client by inserting into API_CLIENTS exactly as documented in Installation — OAuth client registration — the SQL is identical across runtimes.

Sample legacy config files

The legacy XML config files follow the same key structure as the modern env-var configuration. Every key listed in the CMS · MibConfig reference docs is valid in these legacy XML files; the only difference is the serialisation format.

<!-- MibAuthorizationClientConfig.mibconfig -->
<?xml version="1.0" encoding="utf-8" ?>
<mibConfig>
  <default>
    <serverUrl>http://mibauthorizationserver/url/</serverUrl>
    <clientId>newMib3Client</clientId>
    <clientSecret>mY53Cr37aCc3s5K3y</clientSecret>
  </default>
</mibConfig>
<!-- MibApiClientConfig.mibconfig -->
<?xml version="1.0" encoding="utf-8" ?>
<mibConfig>
  <default>
    <url>http://mib/api/server/url/</url>
  </default>
</mibConfig>
<!-- MibDatabaseConfig.mibconfig -->
<?xml version="1.0" encoding="utf-8" ?>
<mibConfig>
  <default>
    <type>serverType</type>
    <server>serverAddress</server>
    <database>databaseName</database>
    <username>databaseUsername</username>
    <password>databasePassword</password>
  </default>
</mibConfig>
<!-- MibCacheConfig.mibconfig -->
<?xml version="1.0" encoding="utf-8" ?>
<mibConfig>
  <default>
    <iis>true</iis>
    <memcached>true</memcached>
    <memcachedServers>192.168.1.84:11211</memcachedServers>
    <disk>true</disk>
    <diskPath>C:\diskcache</diskPath>
    <diskDisableTime>60</diskDisableTime>
  </default>
</mibConfig>

For the canonical, exhaustive list of every option in every config, see the CMS · MibConfig reference section in the sidebar.

Migration to the modern stack

When you're ready to migrate a customer off this path:

  1. Stand up the new Docker-based FrontEnd Server next to the IIS one, pointed at the same FrontEnd DB. See Installation.
  2. Migrate operator-facing pages to the React shell by converting menu entries from ~/Display/<pageKey> to ~/app/<pageKey>. See Menus.
  3. Migrate custom MVC components to the React-era IRenderableComponentV2 contract. See Component Authoring.
  4. Replace any custom JS that used the global MIB.Template.Manager API with the equivalent React hook from @agilecontent/mib-modules. See Legacy JavaScript API for the migration map.
  5. Decommission the IIS install once the React shell carries all the pages the customer uses.

The two stacks can run side-by-side against the same DB indefinitely — migration can be incremental and per-page.

See also