1 Dopo aver modificato il file applicationhost.config (che si trova nella cartella IISExpress nei documenti), i collegamenti del sito dovrebbero apparire come di seguito:
<bindings>
<binding protocol="http" bindingInformation="*:8080:*" />
</bindings>
Gli attacchi sono composti da tre parti. Innanzitutto un indirizzo IP o un elenco o, come in questo caso, un carattere jolly. In secondo luogo il numero di porta e in terzo luogo un nome host, o un elenco, o un carattere jolly (per il filtraggio per Host
intestazione). Per scopi di sviluppo, un carattere jolly è più adatto qui poiché probabilmente utilizzerai una porta univoca.
2 Poiché si utilizza un'associazione non localhost, sono necessarie autorizzazioni aggiuntive. È possibile eseguire VS come amministratore o, preferibilmente, aggiungere gli URL ACL per concedere le autorizzazioni richieste. Nell'esempio seguente il permesso è concesso a tutti, ma potresti usare il tuo nome utente.
Nota: il urlacl
deve corrispondere esattamente all'associazione. Quindi un urlacl
for http://*:8080
consentirà un binding di *:8080:*
, ma non un binding di, *:8080:localhost
anche se il secondo è un sottoinsieme del primo. questo significa che se, invece di usare un carattere jolly, elenchi le intestazioni host in applicationhost.config
, devi aggiungere una corrispondenza urlacl
per ciascuna.
I passaggi per la configurazione di HTTP.sys per il traffico esterno sono simili alla configurazione di un sito per utilizzare una porta riservata. In Windows 7 o Windows Vista, da un prompt dei comandi con privilegi elevati, esegui il comando seguente:
netsh http add urlacl url=http://*:8080/ user=DOMAIN\username
In Windows XP, esegui il seguente comando da un prompt dei comandi con privilegi elevati:
httpcfg set urlacl /u http://*:8080/ /a D:(A;;GX;;;WD)
Nota 2 Se l'esecuzione di VS come amministratore o l'aggiunta di voci ACL non risolve il problema, eseguire IIS Express dalla riga di comando e verificare se sono presenti messaggi di errore di registrazione del binding. Per iniziare dalla riga di comando, dai questo comando:
iisexpress.exe /site:"your-site-name"
3 Infine avrai bisogno delle voci appropriate del firewall. Per questo è più semplice utilizzare la console "Windows Firewall con sicurezza avanzata".
In "Regole in entrata" scegli "Nuova regola ...".
- Il tipo di regola è "Personalizzato".
- Il programma è Servizi-> Personalizza ...-> Applica solo ai servizi. (Sebbene IIS Express non sia un servizio, il multiplexer HTTP che utilizza lo è).
- Il protocollo è TCP
- Porte specifiche: elenca tutte le porte per tutti i tuoi collegamenti IIS Express. Puoi tornare a questa regola e aggiungere porte in qualsiasi momento. (Se questo diventa noioso, potresti aggiungere un intervallo come quello
40000-65534
che copre l'intero intervallo utilizzato da Visual Studio, ma tieni presente che questo è meno sicuro).
- L'azione è "Consenti la connessione"
- Il profilo sarà uno dei seguenti. In caso di dubbio, scegli "Dominio + privato".
- "Dominio", se il tuo è un desktop aziendale e verrà eseguito solo sul dominio locale
- "Dominio + privato" Se la vostra è una macchina di sviluppo privata in un ambiente non aziendale o un laptop aziendale che deve funzionare anche quando si lavora da casa.
- "Dominio, privato e pubblico", se hai bisogno di fare dimostrazioni su reti non private.
- Il nome dovrebbe essere qualcosa come "IIS Express Dev Server"