IIS とそのコンポーネントは、オプション機能として Windows によって公開されます。 これにより、ユーザーはサイトを操作するために必要な IIS の機能のみを有効にすることができます。 副作用として、API を使用して IIS を構成するときに、Windows 認証などの機能がまだコンピューターにインストールされていない可能性があります。 これまで、IIS 機能の有効化は、DISM.exe、PowerShell コマンド、または Windows オプション機能 UI を使用して行われました。 IIS 管理 API では、これらの機能をインストールまたはアンインストールする簡単な方法が公開されているため、コンシューマーが依存する機能を有効にするために環境を変更する必要はありません。
機能がインストールされているかどうかを確認する
機能を管理する最初の手順は、インストールされている場合にチェックすることです。 IIS 機能の場合は、API エンドポイントに要求を送信することでこれを確認できます。 エンドポイントから 200 OK 応答が返された場合、この機能がインストールされます。 機能がインストールされていない場合、API は、本文に Feature Not Installed JSON エラー オブジェクトを含む 404 Not Found 応答を返します。 この例では、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
}
機能のアンインストール
IIS 機能は、Web サーバー レベルで機能に DELETE 要求を発行することでアンインストールできます。 Web サイトおよびアプリケーション レベルでの構成をサポートする 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