Configurazione di un server Web per la pubblicazione con Distribuzione Web (agente remoto)

di Jason Lee

In questo argomento viene descritto come configurare un server Web Internet Information Services (IIS) per supportare la pubblicazione Web e la distribuzione tramite iis Web Deployment Tool (Distribuzione Web) del servizio agente remoto.

Quando si usa Web Deploy 2.0 o versioni successive, esistono tre approcci principali che è possibile usare per ottenere le applicazioni o i siti in un server Web. È possibile:

  • Usare il servizio Distribuzione remota dell'agente web. Questo approccio richiede meno configurazione del server Web, ma è necessario fornire le credenziali di un amministratore server locale per distribuire qualsiasi elemento nel server.
  • Usare il gestore distribuzione Web. Questo approccio è molto più complesso e richiede più sforzi iniziali per configurare il server Web. Tuttavia, quando si usa questo approccio, è possibile configurare IIS per consentire agli utenti non amministratori di eseguire la distribuzione. Il gestore distribuzione Web è disponibile solo in IIS versione 7 o successiva.
  • Usare la distribuzione offline. Questo approccio richiede la configurazione minima del server Web, ma un amministratore del server deve copiare manualmente il pacchetto Web nel server e importarlo tramite Gestione IIS.

Per altre informazioni sulle principali funzionalità, vantaggi e svantaggi di questi approcci, vedere Scelta dell'approccio appropriato alla distribuzione Web.

L'agente remoto di distribuzione Web è l'approccio corretto per l'utente?

Sì, se l'utente che distribuisce il contenuto può fornire le credenziali di un amministratore nel server di destinazione. Questo approccio è spesso auspicabile in questi tipi di scenari:

  • Ambienti di sviluppo o test, in cui lo sviluppatore ha il controllo completo sul server Web di destinazione e sul server di database.
  • Organizzazioni più piccole in cui un singolo utente o un piccolo gruppo di utenti ha il controllo sull'intero ciclo di vita dell'applicazione.

In molte organizzazioni più grandi e in particolare per gli ambienti di gestione temporanea o di produzione, spesso non è realistico concedere agli utenti i diritti di amministratore nei server Web. Nel caso dei server Web ospitati, questo è particolarmente improbabile che sia il caso. Inoltre, se si prevede di automatizzare la distribuzione da un server di compilazione, potrebbe non essere necessario usare le credenziali di amministratore per il processo di distribuzione. In questi scenari, la configurazione dei server Web per supportare la distribuzione tramite il gestore distribuzione Web può offrire una scelta più soddisfacente.

Panoramica delle attività

In questo argomento viene descritto come configurare un server Web Internet Information Services (IIS) 7.5 per accettare e distribuire pacchetti Web da un computer remoto usando l'approccio Distribuzione remota web. È necessario:

  • Installare IIS 7.5 e la configurazione consigliata di IIS 7.
  • Installare Distribuzione Web 2.1 o successiva.
  • Creare un sito Web IIS per ospitare il contenuto distribuito.
  • Assicurarsi che il servizio Web Deployment Agent sia in esecuzione.

Per ospitare in particolare la soluzione di esempio, è necessario:

  • Installare .NET Framework 4.0.
  • Installare ASP.NET MVC 3.

Questo argomento illustra come eseguire ognuna di queste procedure. Le attività e le procedure dettagliate in questo argomento presuppongono che si inizi con una compilazione server pulita che esegue Windows Server 2008 R2. Prima di continuare, assicurarsi che:

  • Windows Server 2008 R2 Service Pack 1 e tutti gli aggiornamenti disponibili sono installati.
  • Il server è aggiunto al dominio.
  • Il server ha un indirizzo IP statico.

Nota

Per altre informazioni sull'aggiunta di computer a un dominio, vedere Aggiunta di computer al dominio e all'accesso. Per altre informazioni sulla configurazione di indirizzi IP statici, vedere Configurare un indirizzo IP statico. Il servizio Agente remoto è supportato da IIS 6 in avanti e non richiede l'aggiunta a un dominio. Tuttavia, i passaggi descritti in questa esercitazione sono stati sviluppati e testati in IIS 7.5 e le procedure per altre versioni possono variare.

Installare prodotti e componenti

Questa sezione illustra l'installazione dei prodotti e dei componenti necessari nel server Web. Prima di iniziare, è consigliabile eseguire Windows Update per assicurarsi che il server sia completamente aggiornato.

In questo caso, è necessario installare queste operazioni:

  • Configurazione consigliata di IIS 7. In questo modo il ruolo Server Web (IIS) nel server Web e installa il set di moduli e componenti IIS necessari per ospitare un'applicazione ASP.NET.
  • .NET Framework 4.0. Questa operazione è necessaria per eseguire applicazioni basate su questa versione di .NET Framework.
  • Strumento di distribuzione Web 2.1 o versione successiva. In questo modo viene installata la distribuzione Web (e il relativo eseguibile sottostante, MSDeploy.exe) nel server. Nell'ambito di questo processo, installa e avvia il servizio Web Deployment Agent. Questo servizio consente di distribuire pacchetti Web da un computer remoto.
  • ASP.NET MVC 3. In questo modo vengono installati gli assembly necessari per eseguire applicazioni MVC 3.

Nota

Questa procedura dettagliata descrive l'uso del programma di installazione della piattaforma Web per installare e configurare i componenti necessari. Anche se non è necessario usare il programma di installazione della piattaforma Web, semplifica il processo di installazione rilevando automaticamente le dipendenze e assicurandosi di ottenere sempre le versioni più recenti del prodotto. Per altre informazioni, vedere Installazione guidata piattaforma Web Microsoft 3.0.

Per installare i prodotti e i componenti necessari

  1. Scaricare e installare il programma di installazione della piattaforma Web.

  2. Al termine dell'installazione, il programma di installazione della piattaforma Web verrà avviato automaticamente.

    Nota

    È ora possibile avviare il programma di installazione della piattaforma Web in qualsiasi momento dal menu Start . A tale scopo, nel menu Start fare clic su Tutti i programmi e quindi fare clic su Installazione guidata piattaforma Web Microsoft.

  3. Nella parte superiore della finestra programma di installazione della piattaforma Web 3.0 fare clic su Prodotti.

  4. Sul lato sinistro della finestra fare clic su Framework nel riquadro di spostamento.

  5. Nella riga Microsoft .NET Framework 4 , se .NET Framework non è già installato, fare clic su Aggiungi.

    Nota

    È possibile che sia già stato installato .NET Framework 4.0 tramite Windows Update. Se un prodotto o un componente è già installato, il programma di installazione della piattaforma Web indicherà questa operazione sostituendo il pulsante Aggiungi con il testo Installato.

    Se un prodotto o un componente è già installato, il programma di installazione della piattaforma Web indicherà questa operazione sostituendo il pulsante Aggiungi con il testo Installato.

  6. Nella riga ASP.NET MVC 3 (Visual Studio 2010) fare clic su Aggiungi.

  7. Nel riquadro di spostamento fare clic su Server.

  8. Nella riga configurazione consigliata di IIS 7 fare clic su Aggiungi.

  9. Nella riga Strumento di distribuzione Web 2.1 fare clic su Aggiungi.

  10. Fare clic su Installa. Il programma di installazione della piattaforma Web mostrerà un elenco di prodotti, insieme a eventuali dipendenze associate, da installare e vi chiederà di accettare le condizioni di licenza.

    Fare clic su Installa. Il programma di installazione della piattaforma Web mostrerà un elenco di prodotti insieme a tutte le dipendenze associate da installare e vi chiederà di accettare le condizioni di licenza.

  11. Esaminare le condizioni di licenza e, se si accettano le condizioni, fare clic su Accetta.

  12. Al termine dell'installazione, fare clic su Fine e quindi chiudere la finestra Programma di installazione piattaforma Web 3.0 .

Se è stato installato .NET Framework 4.0 prima dell'installazione di IIS, è necessario eseguire lo strumento di registrazione IIS ASP.NET (aspnet_regiis.exe) per registrare la versione più recente di ASP.NET con IIS. Se non si esegue questa operazione, si noterà che IIS servirà contenuto statico (come file HTML) senza problemi, ma restituirà l'errore HTTP 404.0 - Non trovato quando si tenta di passare al contenuto ASP.NET. È possibile usare questa procedura per assicurarsi che sia registrata ASP.NET 4.0.

Per registrare ASP.NET 4.0 con IIS

  1. Fare clic su Start e quindi digitare prompt dei comandi.

  2. Nei risultati della ricerca fare clic con il pulsante destro del mouse sul prompt dei comandi e quindi scegliere Esegui come amministratore.

  3. Nella finestra prompt dei comandi passare alla directory %WINDIR%\Microsoft.NET\Framework\v4.0.30319 .

  4. Digitare questo comando e quindi premere INVIO:

    aspnet_regiis -iru
    
  5. Se si prevede di ospitare applicazioni Web a 64 bit in qualsiasi momento, è necessario registrare anche la versione a 64 bit di ASP.NET con IIS. A tale scopo, nella finestra prompt dei comandi passare alla directory %WINDIR%\Microsoft.NET\Framework64\v4.0.30319 .

  6. Digitare questo comando e quindi premere INVIO:

    aspnet_regiis -iru
    

Come procedura consigliata, usare di nuovo Windows Update a questo punto per scaricare e installare eventuali aggiornamenti disponibili per i nuovi prodotti e i componenti installati.

Configurare il sito Web IIS

Prima di poter distribuire contenuto Web nel server, è necessario creare e configurare un sito Web IIS per ospitare il contenuto. Distribuzione Web può distribuire solo pacchetti Web in un sito Web IIS esistente; non può creare automaticamente il sito Web. A livello generale, è necessario completare queste attività:

  • Creare una cartella nel file system per ospitare il contenuto.
  • Creare un sito Web IIS per gestire il contenuto e associarlo alla cartella locale.
  • Concedere le autorizzazioni di lettura all'identità del pool di applicazioni nella cartella locale.

Anche se non è possibile impedire la distribuzione del contenuto nel sito Web predefinito in IIS, questo approccio non è consigliato per altri scenari di test o dimostrazione. Per simulare un ambiente di produzione, è necessario creare un nuovo sito Web IIS con impostazioni specifiche dei requisiti dell'applicazione.

Per creare e configurare un sito Web IIS

  1. Nel file system locale creare una cartella per archiviare il contenuto, ad esempio C:\DemoSite.

  2. Scegliere Strumenti di amministrazione dal menu Start e quindi fare clic su Gestione Internet Information Services (IIS).

  3. Nel riquadro Connessioni di Gestione IIS espandere il nodo del server, ad esempio TESTWEB1.

    Nel riquadro Connessioni di Gestione IIS espandere il nodo del server, ad esempio TESTWEB1.

  4. Fare clic con il pulsante destro del mouse sul nodo Siti e quindi scegliere Aggiungi sito Web.

  5. Nella casella Nome sito digitare un nome per il sito Web IIS, ad esempio DemoSite.

  6. Nella casella Percorso fisico digitare (o passare a) il percorso della cartella locale , ad esempio C:\DemoSite.

  7. Nella casella Porta digitare il numero di porta in cui si desidera ospitare il sito Web ,ad esempio 85.

    Nota

    I numeri di porta standard sono 80 per HTTP e 443 per HTTPS. Tuttavia, se si ospita questo sito Web sulla porta 80, è necessario arrestare il sito Web predefinito prima di poter accedere al sito.

  8. Lasciare vuota la casella Nome host , a meno che non si voglia configurare un record DNS (Domain Name System) per il sito Web e quindi fare clic su OK.

    Lasciare vuota la casella Nome host, a meno che non si voglia configurare un record DNS (Domain Name System) per il sito Web e quindi fare clic su OK.

    Nota

    In un ambiente di produzione, è probabile che si voglia ospitare il sito Web sulla porta 80 e configurare un'intestazione host, insieme ai record DNS corrispondenti. Per altre informazioni sulla configurazione delle intestazioni host in IIS 7, vedere Configurare un'intestazione host per un sito Web (IIS 7). Per altre informazioni sul ruolo Server DNS in Windows Server 2008 R2, vedere Panoramica del server DNS.

  9. Nel riquadro Azioni sotto Modifica sito, fare clic su Binding.

  10. Nella finestra di dialogo Binding sito fare clic su Aggiungi.

    Nella finestra di dialogo Associazioni sito fare clic su Aggiungi.

  11. Nella finestra di dialogo Aggiungi associazione sito impostare l'indirizzo IP e la porta in modo che corrispondano alla configurazione del sito esistente.

  12. Nella casella Nome host digitare il nome del server Web, ad esempio TESTWEB1, e quindi fare clic su OK.

    Nella casella Nome host digitare il nome del server Web, ad esempio TESTWEB1, e quindi fare clic su OK.

    Nota

    Il primo binding del sito consente di accedere al sito in locale usando l'indirizzo IP e la porta o http://localhost:85. Il secondo binding del sito consente di accedere al sito da altri computer nel dominio usando il nome del computer , ad esempio http://testweb1:85).

  13. Nella finestra di dialogo Binding sito fare clic su Chiudi.

  14. Nel riquadro Connessioni fare clic su Pool di applicazioni.

  15. Nel riquadro Pool di applicazioni fare clic con il pulsante destro del mouse sul nome del pool di applicazioni e quindi scegliere Impostazioni di base. Per impostazione predefinita, il nome del pool di applicazioni corrisponderà al nome del sito Web, ad esempio DemoSite.

  16. Nell'elenco delle versioni di .NET Framework selezionare .NET Framework v4.0.30319 e quindi fare clic su OK.

    Nell'elenco delle versioni di .NET Framework selezionare .NET Framework v4.0.30319 e quindi fare clic su OK.

    Nota

    La soluzione di esempio richiede .NET Framework 4.0. Questo non è un requisito per distribuzione Web in generale.

Affinché il sito Web gestisca il contenuto, l'identità del pool di applicazioni deve disporre delle autorizzazioni di lettura per la cartella locale in cui è archiviato il contenuto. In IIS 7.5 i pool di applicazioni vengono eseguiti con un'identità univoca del pool di applicazioni per impostazione predefinita( a differenza delle versioni precedenti di IIS, in cui i pool di applicazioni vengono in genere eseguiti usando l'account del servizio di rete). L'identità del pool di applicazioni non è un account utente reale e non viene visualizzata in alcun elenco di utenti o gruppi, ma viene creata in modo dinamico all'avvio del pool di applicazioni. Ogni identità del pool di applicazioni viene aggiunta al gruppo di sicurezza locale IIS_IUSRS come elemento nascosto.

Per concedere le autorizzazioni a un'identità del pool di applicazioni in un file o in una cartella, sono disponibili due opzioni:

  • Assegnare direttamente le autorizzazioni all'identità del pool di applicazioni usando il formato IIS AppPool[nome pool di applicazioni] (ad esempio , IIS AppPool\DemoSite).
  • Assegnare le autorizzazioni al gruppo di IIS_IUSRS .

L'approccio più comune consiste nell'assegnare autorizzazioni al gruppo di IIS_IUSRS locale perché questo approccio consente di modificare i pool di applicazioni senza riconfigurare le autorizzazioni del file system. La procedura successiva usa questo approccio basato su gruppo.

Nota

Per altre informazioni sulle identità del pool di applicazioni in IIS 7.5, vedere Identità del pool di applicazioni.

Per configurare le autorizzazioni per le cartelle per un sito Web IIS

  1. In Esplora risorse passare al percorso della cartella locale.

  2. Fare clic con il pulsante destro del mouse sulla cartella e scegliere Proprietà.

  3. Nella scheda Security fare clic su Edit e quindi su Add.

  4. Fare clic su Località. Nella finestra di dialogo Percorsi selezionare il server locale e quindi fare clic su OK.

    Fare clic su Posizioni. Nella finestra di dialogo Percorsi selezionare il server locale e quindi fare clic su OK.

  5. Nella finestra di dialogo Seleziona utenti o gruppi digitare IIS_IUSRS, fare clic su Controlla nomi e quindi fare clic su OK.

  6. Nella finestra di dialogo Autorizzazioni per (nome cartella) si noti che al nuovo gruppo sono state assegnate le autorizzazioni Read & execute, List folder contents e Read per impostazione predefinita. Lasciare invariato questo valore e fare clic su OK.

  7. Fare clic su OK per chiudere la finestra di dialogo Proprietà (nome cartella ).

Come attività finale prima di tentare di distribuire qualsiasi pacchetto Web nel server, è necessario assicurarsi che il servizio Web Deployment Agent sia in esecuzione. Quando si distribuisce un pacchetto da un computer remoto, il servizio web Deployment Agent è responsabile dell'estrazione e dell'installazione del contenuto del pacchetto. Il servizio viene avviato per impostazione predefinita quando si installa lo strumento di distribuzione Web ed è in esecuzione nell'identità del servizio di rete.

È possibile verificare se un servizio è in esecuzione in diversi modi, usando varie utilità della riga di comando o cmdlet Windows PowerShell. Questa procedura descrive un approccio semplice basato sull'interfaccia utente.

Per verificare che il servizio Web Deployment Agent sia in esecuzione

  1. Scegliere Start , Strumenti di amministrazione, quindi scegliere Servizi.

  2. Individuare la riga servizio Deployment Agent Web e verificare che lo stato sia impostato su Avviato.

    Individuare la riga Web Deployment Agent Service e verificare che lo stato sia impostato su Avviato.

  3. Se il servizio non è già stato avviato, fare clic su Avvia.

Configurare le eccezioni del firewall

Per impostazione predefinita, il servizio Agente remoto è in ascolto sulla porta TCP 80, in questo URL:

http://servername.com/MSDEPLOYAGENTSERVICE

Nella maggior parte dei casi, non è necessario configurare regole del firewall aggiuntive per il servizio Agente remoto perché i server Web in genere sono in ascolto delle richieste HTTP sulla porta 80. Se l'installazione è stata personalizzata per l'ascolto su una porta non standard, sarà necessario configurare le eccezioni del firewall in base alle esigenze.

Conclusione

A questo punto, il server Web è pronto per accettare e installare pacchetti Web da un computer remoto. Prima di tentare di distribuire un'applicazione Web nel server, è consigliabile controllare questi punti chiave:

  • È stato registrato ASP.NET 4.0 con IIS?
  • L'identità del pool di applicazioni ha accesso in lettura alla cartella di origine per il sito Web?
  • Il servizio Web Deployment Agent è in esecuzione?

Altre informazioni

Per indicazioni su come configurare file di progetto di Microsoft Build Engine personalizzati (MSBuild) per distribuire pacchetti Web nel servizio Agente remoto, vedere Configurazione delle proprietà di distribuzione per un ambiente di destinazione.