Share via


Esecuzione di IIS Express senza privilegi amministrativi

di Vaidy Gopalakrishnan

IIS Express è stato progettato per consentire l'esecuzione delle attività di sviluppo e test Web più comuni senza privilegi amministrativi. Ciò è molto utile negli scenari in cui gli sviluppatori non sono in esecuzione con diritti amministrativi nei computer. Anche per gli utenti amministratori, questa funzionalità elimina la finestra popup Controllo account utente in Windows Vista e Windows 7 interrompendo il flusso di lavoro.

Questo articolo illustra le operazioni che gli utenti standard possono eseguire con IIS Express e descrive le attività limitate agli amministratori.

Esecuzione di siti in locale

Con IIS Express, gli utenti standard possono eseguire siti Web in locale usando porte non riservate (porte superiori a 1024). L'associazione del sito Web predefinita per IIS Express è http://localhost:8080. Per impostazione predefinita, WebMatrix e Visual Studio 2010 SP1 Beta configurano anche i siti Web per l'uso di localhost e una porta non riservata.

Al contrario, i privilegi amministrativi sono necessari per gestire il contenuto per le richieste esterne o usando una porta riservata, ad esempio 80 o 443.

Configurazione di siti Web e applicazioni

Sia IIS che IIS Express usano un file applicationhost.config che contiene informazioni di configurazione a livello di server. Con IIS Express, ogni utente possiede la propria copia di applicationhost.config, il che significa che l'utente può aggiungere siti, rimuovere siti, configurare directory virtuali e così via senza privilegi speciali. IIS Express cerca un file applicationhost.config nella cartella Documenti dell'utente, ad esempio %userprofile%\Documents\IISExpress\config in Windows 7. IIS Express può anche fare riferimento a un file diapplicationhost.config personalizzato usando l'opzione della riga di comando /config. Il risultato è che non è necessario essere un amministratore per usare IIS Express con Visual Studio.

Poiché IIS usa un file applicationhost.config a livello di computer in cui gli utenti standard non possono scrivere, le stesse attività in IIS possono essere eseguite solo dagli amministratori. Poiché IIS viene in genere usato nei computer server, questa non è in genere una restrizione dal punto di vista di un singolo sviluppatore.

Avvio e arresto di siti

Con IIS Express, un utente standard può avviare e arrestare il server Web a volontà. A tale scopo, è possibile usare WebMatrix e Visual Studio 2010 SP1 Beta oppure usando l'eseguibile del comando iisexpress.exe. Un'applicazione dell'area di notifica di Windows consente anche agli utenti di esplorare e arrestare IIS Express istanze.

Con IIS, gli utenti non possono avviare direttamente il proprio sito Web. Al contrario, il servizio di attivazione del processo di lavoro (WAS) è responsabile dell'attivazione dei siti Web. Poiché WAS è un servizio di sistema, solo gli amministratori possono avviarlo o arrestarlo.

Uso di SSL

La configurazione dell'accesso tramite il livello SSL (Secure Sockets Layer) richiede privilegi amministrativi per IIS Express, proprio come avvielo in IIS. Tuttavia, il programma di installazione IIS Express esegue le attività seguenti che consentono agli utenti standard di usare SSL con IIS Express:

  • Crea e installa automaticamente un certificato server SSL autofirmato nell'archivio computer locale.
  • Configura HTTP.SYS per riservare le porte da 44300 a 44399 per SSL. Le richieste SSL in ingresso che usano localhost e una delle porte nell'intervallo specificato vengono associate automaticamente al certificato autofirmato.

(HTTP.SYS è un componente del sistema operativo che gestisce SSL per IIS e IIS Express. Il programma di installazione è in grado di configurare HTTP.SYS perché il programma di installazione viene eseguito con privilegi elevati.

Di conseguenza, l'uso di SSL per testare un sito Web con IIS Express è semplice come aggiungere un'associazione come la seguente all'elemento del sito in applicationhost.config:

<binding protocol="https" bindingInformation="*:44300:localhost" />

Questa operazione funziona solo per il traffico locale (richieste localhost) e per l'intervallo di porte specificato. I privilegi di amministratore sono necessari per configurare un certificato SSL personalizzato o per eseguire SSL usando una porta esterna all'intervallo specificato.

Riepilogo

IIS Express consente agli utenti non amministratori di eseguire le attività seguenti:

  • Eseguire un sito Web in locale e usare un numero di porta maggiore di 1024.
  • Aggiungere, rimuovere e modificare siti Web, applicazioni e directory virtuali.
  • Avviare e arrestare il server Web.
  • Aggiungere il supporto SSL per testare un sito Web usando un certificato SSL autofirmato preinstallato e una porta compresa tra 44300 e 44399.

I privilegi amministrativi sono necessari per eseguire le attività seguenti:

  • Usare una porta riservata, ad esempio 80 o 443.
  • Gestire le richieste per il traffico esterno.
  • Configurare un certificato SSL personalizzato.
  • Eseguire SSL usando una porta esterna all'intervallo compreso tra 44300 e 44399.