目录

一、       简介.... 1

二、       安装.... 1

三、       IIS Administration配置文件.... 2

四、       Web UI管理界面.... 3

五、       IIS Administration API7

一、简介

Microsoft IIS Administration 微软提供,管理IIS配置的REST API 和集中化IIS管理WEB UI。

l  支持绝大部分IIS配置项管理

l  支持管理远程IIS,实现集中化IIS配置管理。

l  支持REST API,方便集成到自研系统。

l  支持IIS配置访问安全性设置

Github:https://github.com/Microsoft/IIS.Administration

微软官网使用文档:https://docs.microsoft.com/en-us/IIS-Administration/

二、安装

下载:https://docs.microsoft.com/en-us/IIS-Administration/getting-started

环境要求:

l  操作系统Windows7版本及以上版本

l  IIS Administration API 依赖.NET Core,在安装IIS Administration安装包时,会按需自动安装

安装完后:

Windows服务名:Microsoft IIS Administration

Microsoft IIS Administration API地址:https://localhost:55539 (可以使用IP地址访问,但是会遇到权限问题,修改权限的方法在下面“修改配置文件”中介绍)

Web UI管理地址:https://manage.iis.net/get

获取AccessToken

进入https://localhost:55539/connect,创建一个Access Key

拿到accesstoken后

l  通过地址:https://localhost:55539/connect 进入api展示界面(https://localhost:55539/#/api),查看可在自己的程序中通过rest api 访问iis信息

l  通过地址:https://manage.iis.net/connect 进入UI管理界面

三、IIS Administration配置文件

1)  配置文件路径:%SystemDrive%\Program Files\IIS Administration\<version>\Microsoft.IIS.Administration\config\**

2)  修改配置文件后需要重启windows服务(Microsoft IIS Administration)

3)  appsettings.json 配置:安全性、日志、audit(审计)、cors(跨域)、访问用户、只读等,详细查看文档

4)  modules.json配置:启用或禁用IIS配置模块

配置修改示例

示例一、访问https://远程IP地址:55539/connect ,出现windows登录验证框

修改点:修改appsettings.json,将"require_windows_authentication"设置为 false

示例二、编码访问IIS Administration REST API 报401没有权限访问

修改点:修改appsettings.json,"access_policy" -> "api" ->"users": "administrators"修改为:"users": "Everyone"

appsettings.json修改后类似如下:(默认会将执行安装包的角色加入到安全设置中)

"security": {
"require_windows_authentication": false, // 默认为true
"users": {
"administrators": [
……
],
"owners": [
……
]
},
"access_policy": {
"api": {
"users": "Everyone", // 默认为执行安装包角色
"access_key": true
},
"api_keys": {
"users": "administrators",
"access_key": false
},
"system": {
"users": "owners",
"access_key": true
}
}
}

四、Web UI管理界面

前面介绍中拿到Access Token后,进入 https://manage.iis.net 管理界面

支持远程IIS管理

IIS服务器的系统资源监控

IIS根节点配置管理

IIS上的站点信息

IIS上的特定站点配置管理

包括:绑定信息、应用程序池、虚拟目录下的应用程序、身份验证、默认文档、目录浏览、IP限制、日志、MIME类型、监控、模块、响应压缩、请求筛选、HTTP响应标头、请求跟踪、静态缓存、HTTP重定向等

五、IIS Administration API

前面介绍中拿到Access Token后,进入 https://localhost:55539/#/api

METHOD      DESCRIPTION

GET         Retrieves the specified resource

POST        Creates a resource

PATCH       Updates the specified resource

DELETE      Deletes the specified resource

HEAD        Similar to get except only returns HTTP headers

示例

https://docs.microsoft.com/en-us/IIS-Administration/api/crud

代码示例RestSharp

var client = new RestClient(iisAdminBaseUrl);
ServicePointManager.ServerCertificateValidationCallback +=
(sender, certificate, chain, sslPolicyErrors) => true;
var request = new RestRequest("/api/webserver/websites", Method.GET);
request.AddHeader("Access-Token", $"Bearer {token}");
request.AddHeader("Accept", "application/hal+json");
IRestResponse response = client.Execute(request);
if (response.IsSuccessful)
{ …… }

代码示例HttpClient

var apiClient = new HttpClient(new HttpClientHandler()
{
UseDefaultCredentials = true,
ServerCertificateCustomValidationCallback = (message, cert, chain, error) => true
}, true);
// Set access token for every request
apiClient.DefaultRequestHeaders.Add("Access-Token", "Bearer {token}");
// Request HAL (_links)
apiClient.DefaultRequestHeaders.Add("Accept", "application/hal+json"); var res = await apiClient.GetAsync("https://localhost:55539/api/webserver/websites");
if (res.StatusCode != HttpStatusCode.OK) {
HandleError(res);
return;
}
JArray sites = JObject.Parse(res.Content.ReadAsStringAsync().Result).Value<JArray>("websites");

推荐阅读:

站点部署,IIS配置优化指南

===========================================

over,谢谢阅读,若对你有帮助,请帮推荐下。

IIS集中化管理与编程REST API的更多相关文章

  1. (转载)Linux系统调用及用户编程接口(API)

    (转载)http://www.farsight.com.cn/news/emb167.htm 1 Linux系统调用 所谓系统调用是指操作系统提供给用户程序调用的一组“特殊”接口,用户程序可以通过这组 ...

  2. Saltstack 集中化管理平台安装

    Saltstack的简介 SaltStack(http://www.saltstack.com/)是一个服务器基础架构集中化管理平台,具备配置管理.远程执行.监控等功能,一般可以理解为简化版的pupp ...

  3. 集中化管理平台 — Ansible 详解

    # Ansible 简介 Ansible 类似于Saltstack,是一种集成IT系统的配置管理.应用部署.执行特定任务的开源平台.Ansible基于Python语言实现,由Paramiko和PyYA ...

  4. SaltStack 是一个服务器基础架构集中化管理平台

    SaltStack详细部署   一.基础介绍============================================================================== ...

  5. USB联机线编程接口(API)

    USB联机线编程接口(API) 2013-10-19 本页面的文字允许在知识共享 署名-相同方式共享 3.0协议和GNU自由文档许可证下修改和再使用. 关键字:USB隔离线.USB点对点通讯.USB通 ...

  6. 服务器编程入门(4)Linux网络编程基础API

      问题聚焦:     这节介绍的不仅是网络编程的几个API     更重要的是,探讨了Linux网络编程基础API与内核中TCP/IP协议族之间的关系.     这节主要介绍三个方面的内容:套接字( ...

  7. 搭建rtmp直播流服务之3:java开发ffmpeg实现rtsp转rtmp并实现ffmpeg命令的接口化管理架构设计及代码实现

    上一篇文章简单介绍了java如何调用ffmpeg的命令:http://blog.csdn.net/eguid_1/article/details/51777716 上上一篇介绍了nginx-rtmp服 ...

  8. IIS命令行管理工具使用

    AppCmd.exe工具所在目录 C:\windows\sytstem32\inetsrv\目录下 一条命令批量添加应用程序 c:\Windows\System32\inetsrv>for /d ...

  9. Linux 高性能服务器编程——Linux网络编程基础API

    问题聚焦:     这节介绍的不仅是网络编程的几个API     更重要的是,探讨了Linux网络编程基础API与内核中TCP/IP协议族之间的关系.     这节主要介绍三个方面的内容:套接字(so ...

随机推荐

  1. 二丶Django~1

      一 什么是web框架? 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,简单地说,就是你用别人搭建好的舞台来做表演. 对于 ...

  2. table td中的内容过长,显示为固定长度,多余部分用省略号显示

    简单描述:table数据过长,结果顶到下一格,影响了数据的查看 解决办法: 给table 加上style属性   另外 给td加上style标签修饰 <table class="tab ...

  3. python常见排序算法解析

    python——常见排序算法解析   算法是程序员的灵魂. 下面的博文是我整理的感觉还不错的算法实现 原理的理解是最重要的,我会常回来看看,并坚持每天刷leetcode 本篇主要实现九(八)大排序算法 ...

  4. pg 生成数据字典

    select (select relname||'--'||(select description from pg_description where objoid=oid and objsubid= ...

  5. 物联网框架ServerSuperIO.Core(.netcore)跨平台,一套设备驱动通吃嵌入式、上位机、云服务

    1.      概述... 2 2.      ServerSuperIO.Core跨平台开发环境... 2 3.      ServerSuperIO.Core特点... 2 4.      Ser ...

  6. Using QueryRunner to insert ArrayList<Object[]>

    使用QueryRunner 结合c3p0进行数据库操作时候, 需求:list<bean>进行插入数据库中,但是QueryRunner 仅仅支持batch():批处理: Object[][] ...

  7. 小游戏canvas直接操作ImgaeData时的几个优化点

    前不久在处理一个canvas绘图需求时,经过不断测试优化,将重绘一帧的时间由400ms降低至20ms左右,基本满足了要求.特此记录一下优化方向. 设备环境:Android,360*720,pixelR ...

  8. Java重头学

    前言:这两周来上了腾讯课堂-软媒-JAVA架构师黄埔班的课程后,发现自己真心是一个菜鸟,Java基础知识和日常开发所需的知识还有很多很多.就此,我准备跟着这个课程重头学习Java,成为一名合格的Jav ...

  9. python第六天(元组、字典、集合)

    一.元组(tuple) 作用:存多个值,对比列表来说,元组不可变(是可以当做字典的key的),主要用来读 定义:与列表类型相比,只不过把[ ]换成() age=(11,22,33,44,55)prin ...

  10. 使用python来操作redis用法详解

    1.redis连接 redis提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使用官方的语法和命令,Redis是StrictRe ...