IIS Administration System Architecture Overview
The Administration API for IIS was developed as an ASP.Net Core application. This allowed us to take advantage of the Web API conventions that the MVC framework offered. This application has to be accessible at all times to allow users to be able to configure IIS whenever necessary, therefore we needed it to run as a service. Hostable Web Core (HWC) is a technology that allows a consumer to have an in-process version of IIS available to them. When HWC gets loaded in, the process has access to all the capabilities that the full IIS offers. We took advantage of HWC to enable behavior quintessential to the success of the API such as windows authentication, logging, and SSL bindings.
The architecture that we use allows the API to be self hosted as a windows service. The configuration changes to IIS do not affect the behavior of the service that is using HWC, because HWC uses its own applicationHost.config file.
This micro service is being developed to support IIS 7.5 and above including Nano Server for Windows Server 2016. It will run on the IIS machine that the user wishes to configure/monitor. The release schedule for the IIS Administration API is not bound to the Windows release schedule but we will set logical milestones based on future technologies. Currently the service is installed using a PowerShell script, but the methodology for installing the service has not yet been finalized.