Leggere in inglese

Condividi tramite


Risorsa del sito Web

I siti Web sono un'entità principale di IIS che determinano dove e come verranno gestite le richieste. L'API del sito Web consente ai consumer di creare, leggere, eliminare o aggiornare i siti Web. Questo è adatto per lo scripting di distribuzioni automatizzate o per apportare modifiche alle risorse esistenti.

GET/api/webserver/sites/{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}"
        }
    }
}

Associazioni siti Web

Le associazioni di un sito Web determinano le porte, i protocolli e i nomi host del sito in ascolto. Almeno, un'associazione deve specificare un protocollo, un adddress ip e una porta. La proprietà binding_information può essere usata per specificare l'indirizzo IP, la porta e il nome host. Il formato di binding_information è '{ip_address}:{port}:{hostname}' per i protocolli HTTP e HTTPS. Per le associazioni HTTPS è necessario un certificato.

Creazione di un sito Web

La creazione di un sito Web richiede un percorso fisico per archiviare il sito Web, il nome del sito Web e un set di associazioni su cui il sito Web deve essere in ascolto.

Creazione di un sito Web abilitato per HTTP

Creazione di un sito Web in ascolto sulla porta 8081. POST/api/webserver/siti Web

{
    "name": "Demonstration Site",
    "physical_path": "C:\\inetpub\\wwwroot\\DemonstrationSite",
    "bindings": [
        {
            "protocol": "HTTP",
            "port": "8081",
            "ip_address": *
        }
    ]
}

Creazione di un sito Web abilitato per HTTPS

Per creare un sito con un'associazione HTTPS, un certificato deve essere fornito nell'oggetto binding. I certificati sono una risorsa disponibile tramite l'endpoint /api/certificate . Per specificare il certificato desiderato nell'associazione, aggiungere la risorsa del certificato e specificare l'ID certificato, come illustrato di seguito.

Creazione di un sito Web in ascolto delle richieste HTTPS sulla porta 8082. POST/api/webserver/siti Web

{
    "name": "Demonstration Site",
    "physical_path": "C:\\inetpub\\wwwroot\\DemonstrationSite",
    "bindings": [
        {
            "protocol": "HTTPS",
            "port": "8082",
            "ip_address": *,
            "certificate": {
                "id": {certificate_id}
            }
        }
    ]
}

Creazione in un pool di applicazioni specifico

Per specificare il pool di applicazioni per cui deve essere creato un sito Web, aggiungere la proprietà application_pool al corpo della richiesta. Il pool di applicazioni viene identificato esclusivamente dalla relativa proprietà id .

Creazione di un sito Web per un pool di applicazioni specifico. POST/api/webserver/siti Web

{
    "name": "Demonstration Site",
    "physical_path": "C:\\inetpub\\wwwroot\\DemonstrationSite",
    "bindings": [
        {
            "protocol": "HTTP",
            "port": "8081",
            "ip_address": *
        }
    ],
    "application_pool": {
        "id": {application_pool_id}
    }
}

Aggiornamento di un sito Web

L'aggiornamento dei siti Web viene eseguito tramite richieste di patch. L'invio di una richiesta di patch con il sito Web nello stato desiderato aggiornerà il sito Web nel server in modo che corrisponda.

Aggiunta di un'associazione

Un motivo comune per aggiornare un sito Web consiste nell'aggiungere un'associazione. Ad esempio, si supponga che sia presente un sito Web con un'unica associazione sulla porta 80 e si vuole aggiungere un'associazione in ascolto sulla porta 8080. È consigliabile inviare una richiesta di patch contenente un elenco di associazioni con entrambe le associazioni desiderate. Poiché la proprietà binding è un elenco, le associazioni già esistenti nel sito Web devono essere inviate come parte della richiesta in modo che non vengano perse.

Aggiunta di un'associazione a un sito Web. PATCH/api/webserver/sites/{id}

{
    "bindings": [
        {
            "protocol": "HTTP",
            "port": "80",
            "ip_address": *
        },
        {
            "protocol": "HTTP",
            "port": "8080",
            "ip_address": *
        }
    ]
}