Previously we announced that we are developing a new REST API for administering IIS. Now, the Microsoft IIS Administration API is having its first preview release. The preview can be obtained by visiting https://manage.iis.net.
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.
IIS is a mature technology with a large amount of configuration available. Historically the configuration of IIS has been done through WMI, Appcmd, PowerShell, and graphically through IIS Manager. All of these technologies have continued to serve their purpose, allowing users to configure the web server to meet their needs. Recently the IIS team has been working on a project to open up IIS configuration even more by creating a REST API that exposes the configuration system. This API is not meant to replace any of the existing configuration access mechanisms, but stand beside them and offer an open method for interacting with IIS. The REST API communicates with HTTPS making it accessible from any device that knows how to send a web request. This allows IIS to be configured more freely and opens the door for configuration clients that were not possible before, such as mobile applications.