Configurazione di HTTP e HTTPS
L'utilizzo di Windows Communication Foundation (WCF) su HTTP richiede l'utilizzo di un host, quale Internet Information Services (IIS), o la configurazione manuale delle impostazioni HTTP tramite l'API server HTTP. In questo documento viene descritta la configurazione manuale di WCF quando si utilizzano HTTP e HTTPS.
Lo strumento utilizzato per configurare le impostazioni HTTP dipende dal sistema operativo in esecuzione nel computer.
Quando viene eseguito Windows Server 2003 o Windows XP, utilizzare lo strumento HttpCfg.exe. Con Windows Server 2003, questo strumento è installato. Con Windows XP, è possibile scaricare lo strumento dal sito degli strumenti di supporto per Windows XP Service Pack 2. Per ulteriori informazioni, vedere Panoramica di Httpcfg.
Con Windows Vista, queste impostazioni si configurano con lo strumento Netsh.exe.
Configurazione di certificati SSL
Il protocollo SSL (Secure Sockets Layer) utilizza certificati nel client e nel server per memorizzare le chiavi di crittografia. Il server fornisce il proprio certificato SSL quando viene stabilita una connessione, in modo che il client possa verificare l'identità del server. Il server può inoltre richiedere un certificato dal client, per fornire l'autenticazione reciproca di entrambi i lati della connessione.
I certificati vengono memorizzati in un archivio centralizzato in base all'indirizzo IP e al numero di porta della connessione. L'indirizzo IP speciale 0.0.0.0 corrisponde a qualsiasi indirizzo IP del computer locale. Si noti che l'archivio certificati non distingue gli URL in base al percorso. I servizi con la stessa combinazione di indirizzo IP e porta deve condividere certificati anche se il percorso nell'URL dei servizi è diverso.
Per istruzioni dettagliate, vedere Procedura: configurare una porta con un certificato SSL.
Configurazione delle prenotazioni dello spazio dei nomi
La prenotazione dello spazio dei nomi assegna i diritti per una parte dello spazio dei nomi URL HTTP a un particolare gruppo di utenti. Una prenotazione concede a quegli utenti il diritto di creare servizi in ascolto sulla parte dello spazio dei nomi. Le prenotazioni sono prefissi URL, pertanto la prenotazione riguarda tutti i sottopercorsi del percorso di prenotazione. Le prenotazioni dello spazio dei nomi permettono due modalità per utilizzare caratteri jolly. Nella documentazione sull'API server HTTP viene descritto l'ordine della risoluzione tra le attestazioni dello spazio dei nomi che implicano caratteri jolly (la pagina potrebbe essere in inglese).
Un'applicazione in esecuzione può creare una richiesta simile per aggiungere registrazioni dello spazio dei nomi. Registrazioni e prenotazioni competono per parti dello spazio dei nomi. Una prenotazione può avere precedenza su una registrazione a seconda dell'ordine di risoluzione indicato nell' ordine di risoluzione tra attestazioni dello spazio dei nomi che implicano caratteri jolly (la pagina potrebbe essere in inglese). In questo caso, la prenotazione blocca la ricezione delle richieste da parte dell'applicazione in esecuzione.
Esecuzione di Windows XP o di Windows Server 2003
Utilizzare il comando httpcfg.exe set urlacl per modificare le prenotazioni dello spazio dei nomi. Nella documentazione sugli strumenti di supporto Windows (la pagina potrebbe essere in inglese) viene illustrata la sintassi dello strumento Httpcfg.exe. La modifica dei diritti di prenotazione per una parte dello spazio dei nomi richiede privilegi amministrativi o la proprietà della parte in questione dello spazio dei nomi. Inizialmente, l'intero spazio dei nomi HTTP appartiene all'amministratore locale.
Nell'esempio seguente viene illustrata la sintassi del comando Httpcfg con l'opzione set urlacl
httpcfg set urlacl /u {http://URL:Port/ | https://URL:Port/} /aACL
Quando si utilizza set urlacl è necessario il parametro /u, che accetta una stringa contenente un URL completo che funge da chiave record per la prenotazione eseguita.
Quando si utilizza set urlacl è necessario anche il parametro /a, che accetta una stringa contenente un elenco di controllo di accesso (ACL) in forma di stringa SDDL (Security Descriptor Definition Language).
Di seguito viene illustrato un esempio di utilizzo del comando.
httpcfg.exe set urlacl /u http://myhost:8000/ /a "O:AOG:DAD:(A;;RPWPCCDCLCSWRCWDWOGA;;;S-1-0-0)"
Esecuzione di Windows Vista
Se si sta eseguendo l'applicazione su Windows Vista, è invece possibile utilizzare lo strumento Netsh.exe. Di seguito viene illustrato un esempio di utilizzo del comando.
netsh http add urlacl url=http://+:80/MyUri user=DOMAIN\user
Configurazione dell'elenco di ascolto IP
L'API server HTTP viene associata a un indirizzo IP e a una porta solo quando un utente registra un URL. Per impostazione predefinita, l'API server HTTP viene associata alla porta nell'URL per tutti gli indirizzi IP del computer. Nasce un conflitto se un'applicazione che non utilizza l'API server HTTP è stata precedentemente associata alla combinazione in questione di indirizzo IP e porta. L'elenco di ascolto IP consente ai servizi WCF di coesistere con applicazioni che utilizzano una porta per alcuni degli indirizzi IP del computer. Se l'elenco di ascolto IP contiene voci, l'API server HTTP viene associata solo agli indirizzi IP specificati nell'elenco. La modifica dell'elenco di ascolto IP richiede privilegi amministrativi.
Esecuzione di Windows XP o di Windows Server 2003
Utilizzare lo strumento httpcfg per modificare l'elenco di ascolto IP, come illustrato nell'esempio seguente. Nella documentazione sugli strumenti di supporto Windows (la pagina potrebbe essere in inglese) viene illustrata la sintassi dello strumento httpcfg.exe.
httpcfg.exe set iplisten -i 0.0.0.0:8000
Esecuzione di Windows Vista
Utilizzare lo strumento netsh per modificare l'elenco di ascolto IP, come illustrato nell'esempio seguente.
netsh http add iplisten ipaddress=0.0.0.0:8000
Altre impostazioni di configurazione
L'indirizzamento HTTP indipendente per WCF non è integrato nel firewall personale Windows. Per consentire connessioni in ingresso tramite un particolare URL, è necessario aggiungere un'eccezione alla configurazione del firewall.
Quando si utilizza WsDualHttpBinding, la connessione client utilizza impostazioni predefinite compatibili con le prenotazioni dello spazio dei nomi e il firewall personale Windows. Se si sceglie di personalizzare l'indirizzo client di base di una connessione doppia, è necessario configurare anche queste impostazioni HTTP sul client per farle corrispondere al nuovo indirizzo.
L'API server HTTP prevede alcune impostazioni di configurazione avanzate non disponibili tramite HttpCfg. Queste impostazioni vengono mantenute nel Registro di sistema e valgono per tutte le applicazioni in esecuzione sui sistemi che utilizzano API server HTTP. Per informazioni su queste impostazioni, vedere le impostazioni Http.sys del Registro di sistema per IIS (la pagina potrebbe essere in inglese). La maggior parte degli utenti non dovrebbe avere la necessità di modificare queste impostazioni.
Problemi specifici di Windows XP
IIS non supporta la condivisione delle porte su Windows XP. Se IIS è in esecuzione e un servizio WCF tenta di utilizzare uno spazio dei nomi con la stessa porta, l'avvio del servizio WCF ha esito negativo. IIS e WCF utilizzano entrambi, per impostazione predefinita, la porta 80. Modificare l'assegnazione della porta per uno dei servizi o utilizzare l'elenco di ascolto IP per assegnare il servizio WCF a una scheda di rete non utilizzata da IIS. IIS 6.0 e versioni successive sono stati riprogettati per utilizzare API server HTTP.
Vedere anche
Attività
Procedura: configurare una porta con un certificato SSL