網站資源
網站是 IIS 的核心實體,可決定要求處理的位置和方式。 網站 API 可讓取用者建立、讀取、刪除或更新其網站。 這適用於編寫自動化部署的腳本,或對現有資源進行變更。
GET/api/webserver/websites/{id}
{
"name": "Default Web Site",
"id": "{id}",
"physical_path": "%SystemDrive%\\inetpub\\wwwroot",
"key": "1",
"status": "started",
"server_auto_start": "true",
"enabled_protocols": "http",
"limits": {
"connection_timeout": "120",
"max_bandwidth": "4294967295",
"max_connections": "4294967295",
"max_url_segments": "32"
},
"bindings": [
{
"protocol": "https",
"binding_information": "*:443:",
"ip_address": "*",
"port": "443",
"hostname": "",
"certificate": {
"name": "Web Hosting Certificate",
"id": "{certificate_id}",
"issued_by": "CN=localhost",
"subject": "CN=localhost",
"thumbprint": "2F6C0E796B8DAC4A1DDBF59F1714A19D9520B88A",
"valid_to": "2022-01-09T00:00:00Z"
},
"require_sni": "false"
},
{
"protocol": "http",
"binding_information": "*:80:",
"ip_address": "*",
"port": "80",
"hostname": ""
},
{
"protocol": "net.tcp",
"binding_information": "808:*"
}
],
"application_pool": {
"name": "DefaultAppPool",
"id": "{application_pool_id}",
"status": "started"
},
"_links": {
"authentication": {
"href": "/api/webserver/authentication/{authentication_id}"
},
"authorization": {
"href": "/api/webserver/authorization/{authorization_id}"
},
"default_document": {
"href": "/api/webserver/default-documents/{default_document_id}"
},
"delegation": {
"href": "/api/webserver/feature-delegation?website.id={id}"
},
"directory_browsing": {
"href": "/api/webserver/directory-browsing/{directory_browsing_id}"
},
"files": {
"href": "/api/webserver/files/{files_id}"
},
"handlers": {
"href": "/api/webserver/http-handlers/{handlers_id}"
},
"ip_restrictions": {
"href": "/api/webserver/ip-restrictions/{ip_restrictions_id}"
},
"logging": {
"href": "/api/webserver/logging/{logging_id}"
},
"modules": {
"href": "/api/webserver/http-modules/{modules_id}"
},
"request_filtering": {
"href": "/api/webserver/http-request-filtering/{request_filtering_id}"
},
"request_monitor": {
"href": "/api/webserver/http-request-monitor/requests?website.id={request_monitor_id}"
},
"request_tracing": {
"href": "/api/webserver/http-request-tracing/{request_tracing_id}"
},
"response_compression": {
"href": "/api/webserver/http-response-compression/{response_compression_id}"
},
"response_headers": {
"href": "/api/webserver/http-response-headers/{response_headers_id}"
},
"ssl": {
"href": "/api/webserver/ssl-settings/{ssl_id}"
},
"static_content": {
"href": "/api/webserver/static-content/{static_content_id}"
},
"vdirs": {
"href": "/api/webserver/virtual-directories?website.id={id}"
},
"webapps": {
"href": "/api/webserver/webapps?website.id={id}"
}
}
}
網站的系結會決定網站將接聽的埠、通訊協定和主機名。 至少,系結必須指定通訊協定、ip adddress 和埠。 binding_information 屬性可用來指定ip位址、埠和主機名。 HTTP 和 HTTPS 通訊協定的 binding_information 格式為 '{ip_address}:{port}:{hostname}'。 HTTPS 系結需要憑證。
建立網站需要實體路徑來儲存網站、網站的名稱,以及網站應該接聽的一組系結。
建立接聽埠 8081 的網站。 POST/api/webserver/websites
{
"name": "Demonstration Site",
"physical_path": "C:\\inetpub\\wwwroot\\DemonstrationSite",
"bindings": [
{
"protocol": "HTTP",
"port": "8081",
"ip_address": *
}
]
}
若要使用 HTTPS 系結建立網站,必須在系結物件中提供憑證。 憑證是透過 /api/certificates 端點提供的資源。 若要在系結中指定所需的憑證,請新增憑證資源,並指定憑證 標識子,如下所示。
建立網站,以接聽埠 8082 上的 HTTPS 要求。 POST/api/webserver/websites
{
"name": "Demonstration Site",
"physical_path": "C:\\inetpub\\wwwroot\\DemonstrationSite",
"bindings": [
{
"protocol": "HTTPS",
"port": "8082",
"ip_address": *,
"certificate": {
"id": {certificate_id}
}
}
]
}
若要指定網站應該建立的應用程式集區,請將 application_pool 屬性新增至要求的本文。 應用程式集區只能透過其 識別碼 屬性來識別。
建立特定應用程式集區的網站。 POST/api/webserver/websites
{
"name": "Demonstration Site",
"physical_path": "C:\\inetpub\\wwwroot\\DemonstrationSite",
"bindings": [
{
"protocol": "HTTP",
"port": "8081",
"ip_address": *
}
],
"application_pool": {
"id": {application_pool_id}
}
}
更新網站是透過修補要求完成的。 傳送具有所需狀態的網站修補要求將會更新伺服器上的網站以符合。
更新網站的常見原因是新增系結。 例如,假設埠 80 上有一個具有單一系結的網站,而我們想要新增接聽埠 8080 的系結。 我們應該傳送修補程式要求,其中包含 系結 清單,其中包含我們想要的系結。 由於 系結 屬性是清單,因此應該在要求中傳送已存在於網站上的系結,以免遺失這些系結。
將系結新增至網站。 PATCH/api/webserver/websites/{id}
{
"bindings": [
{
"protocol": "HTTP",
"port": "80",
"ip_address": *
},
{
"protocol": "HTTP",
"port": "8080",
"ip_address": *
}
]
}