通过


安装 IIS 组件

IIS 及其组件由 Windows 公开为可选功能。 这样,用户才能仅启用其站点运行所需的 IIS 功能。 作为副作用,通过 API 配置 IIS 时,可能尚未在计算机上安装功能(例如 Windows 身份验证)。 以前,启用 IIS 功能是通过 DISM.exe、PowerShell 命令或 Windows 可选功能 UI 完成的。 IIS 管理 API 公开了一种安装/卸载这些功能的简单方法,以便使用者无需更改环境即可启用它们依赖的功能。

检查是否已安装功能

管理功能的第一步是检查是否安装了该功能。 对于任何 IIS 功能,我们可以通过将请求发送到其 API 终结点来确定这一点。 如果终结点返回 200 正常 响应,则会安装该功能。 如果未安装该功能,API 将返回 404 未找到 响应,并在正文中返回 未安装功能 JSON 错误对象。 此示例将使用 IIS 的默认文档功能。 我们检查是否通过向默认文档终结点发送 GET 请求来启用默认文档。 我们在查询字符串中使用 范围,其中包含一个空值来指定我们面向 Web 服务器范围。

GET/api/webserver/default-documents?scope=

未安装 功能

404 Not Found


{
    "title": "Not found",
    "detail": "IIS feature not installed",
    "name": "Default Document",
    "status": "404"
}

安装了 功能

200 OK


{
    "id": "{id}",
    "enabled": "true",
    "scope": "",
    "metadata": {
        "is_local": "true",
        "is_locked": "false",
        "override_mode": "allow",
        "override_mode_effective": "allow"
    },
    "website": null
}

安装功能

通过向功能终结点发出 POST 请求来执行功能安装。 某些 IIS 功能(如 中央证书存储 需要在安装时提供初始设置。 例如,假设默认文档功能返回 404 未安装的功能 响应。 向默认文档终结点发送 POST 请求将安装该功能,然后返回功能设置。

POST/api/webserver/default-documents

HTTP 响应

201 CREATED
Location: /api/webserver/default-documents/{id}


{
    "id": "{id}",
    "enabled": "true",
    "scope": "",
    "metadata": {
        "is_local": "true",
        "is_locked": "false",
        "override_mode": "allow",
        "override_mode_effective": "allow"
    },
    "website": null
}

卸载功能

可以通过向 Web 服务器级别的功能发出 DELETE 请求来卸载 IIS 功能。 对于支持网站和应用程序级别的配置的 IIS 功能,可以通过确保 范围 字段为空来验证对象是否表示 Web 服务器范围。

首先获取要卸载的功能的 URI。

GET/api/webserver

{
    "id": "{id}",
    "_links": {
        ... // Other features omitted
        "default_document": {
            "href": "/api/webserver/default-documents/{def-doc-id}"
        }
    }
}

然后,向功能终结点发出 delete 请求

DELETE/api/webserver/default-documents/{def-doc-id}

204 NO CONTENT