Ottenere le impostazioni di pubblicazione da IIS e importare in Visual Studio

È possibile usare lo strumento Pubblica per importare le impostazioni di pubblicazione e quindi distribuire l'app. In questo articolo vengono usate le impostazioni di pubblicazione per IIS.

Questi passaggi si applicano alle applicazioni Web ASP.NET e ASP.NET Core.

Nota

Un file di impostazioni di pubblicazione (*.publishsettings) è diverso da un profilo di pubblicazione (*.pubxml). Un file di impostazioni di pubblicazione viene creato in IIS e quindi può essere importato in Visual Studio. Visual Studio crea il profilo di pubblicazione.

Prerequisiti

  • Visual Studio installato con il carico di lavoro ASP.NET e sviluppo Web. Se Visual Studio è già stato installato:

    • Installare gli aggiornamenti più recenti in Visual Studio selezionando ?>Controlla aggiornamenti.
    • Aggiungere il carico di lavoro selezionando Strumenti>Ottieni strumenti e funzionalità.
  • Nel server è necessario eseguire Windows Server 2012 o versione successiva ed è necessario che il ruolo server Web IIS sia installato correttamente (necessario per generare il file delle impostazioni di pubblicazione (*.publishsettings)). Nel server deve essere installato anche ASP.NET 4.5 o ASP.NET Core. I passaggi di questa esercitazione sono stati testati in Windows Server 2022.

    Nota

    IIS in Windows non supporta la generazione delle impostazioni di pubblicazione. Tuttavia, è comunque possibile pubblicare in IIS usando lo strumento Pubblica in Visual Studio.

Installare e configurare Distribuzione Web in Windows Server

Distribuzione Web offre funzionalità di configurazione aggiuntive che consentono la creazione del file delle impostazioni di pubblicazione dall'interfaccia utente.

Nota

Il programma di installazione della piattaforma Web ha raggiunto la fine della vita il 7/1/22. Per altre informazioni, vedere Programma di installazione della piattaforma Web - Fine del supporto e chiusura del feed di prodotti/applicazioni. È possibile installare direttamente Distribuzione Web 4.0 per creare il file delle impostazioni di pubblicazione.

  1. Installare Strumenti e script di gestione IIS, se non lo si è ancora fatto.

    Passare a Selezione ruoli server>Server Web (IIS)>Strumenti di gestione e quindi selezionare il ruolo Strumenti e script di gestione IIS, fare clic su Avanti e quindi installare il ruolo.

    Install IIS Management Scripts and Tools

    Gli script e gli strumenti sono necessari per consentire la generazione del file delle impostazioni di pubblicazione.

    Assicurarsi di installare anche il servizio di gestione e la console di gestione IIS (potrebbero essere già installati).

  2. In Windows Server scaricare Distribuzione Web 4.0.

  3. Eseguire il programma di installazione distribuzione Web e assicurarsi di selezionare Completa installazione anziché un'installazione tipica.

    Con un'installazione completa, si ottengono i componenti necessari per generare un file di impostazioni di pubblicazione. (Se si sceglie È invece possibile visualizzare l'elenco dei componenti, come illustrato nella figura seguente.

    Screenshot showing Web Deploy 4.0 components

  4. (Facoltativo) Verificare che Distribuzione Web sia in esecuzione correttamente aprendo Pannello di controllo > Servizi strumenti di sistema e sicurezza > Amministrazione istrative >e quindi verificare che:

    • Il servizio agente di distribuzione Web è in esecuzione (il nome del servizio è diverso nelle versioni precedenti).

    • Servizio di gestione Web in esecuzione.

    Se uno dei servizi agente non è in esecuzione, riavviare il servizio agente di distribuzione Web.

    Se il servizio Agente distribuzione Web non è affatto presente, passare a Pannello di controllo > Programmi > Disinstalla un programma, trovare La versione> di <Distribuzione Web Microsoft. Scegliere di modificare l'installazione e assicurarsi di scegliere Installazione su disco rigido locale per i componenti di Distribuzione Web. Completare la procedura di modifica dell'installazione di modifica.

Creare il file delle impostazioni di pubblicazione in IIS in Windows Server

  1. Chiudere e riaprire la Console di gestione IIS per visualizzare le opzioni di configurazione aggiornate nell'interfaccia utente.

  2. In IIS fare clic con il pulsante destro del mouse su Sito Web predefinito, quindi scegliere Distribuisci>Abilita pubblicazione Distribuzione Web.

    Configure Web Deploy configuration

    Se non viene visualizzato il menu Distribuisci , vedere la sezione precedente per verificare che Distribuzione Web sia in esecuzione.

  3. Nella finestra di dialogo Abilita pubblicazione Distribuzione Web esaminare le impostazioni.

  4. Fare clic su Impostazioni.

    Nel riquadro Risultati l'output indica che i diritti di accesso vengono concessi all'utente specificato e che è stato generato un file con estensione publishsettings nella posizione indicata nella finestra di dialogo.

    <?xml version="1.0" encoding="utf-8"?>
    <publishData>
      <publishProfile
        publishUrl="https://myhostname:8172/msdeploy.axd"
        msdeploySite="Default Web Site"
        destinationAppUrl="http://myhostname:80/"
        mySQLDBConnectionString=""
        SQLServerDBConnectionString=""
        profileName="Default Settings"
        publishMethod="MSDeploy"
        userName="myhostname\myusername" />
    </publishData>
    

    A seconda della configurazione di Windows Server e IIS vengono visualizzati valori diversi nel file XML. Di seguito sono riportati alcuni dettagli sui valori visualizzati:

    • Il file msdeploy.axd al quale si fa riferimento nell'attributo publishUrl è un file gestore HTTP generato dinamicamente per Distribuzione Web. Ai fini dei test, in genere è possibile usare anche http://myhostname:8172.

    • La porta publishUrl è impostata sulla porta 8172, il valore predefinito per Distribuzione Web.

    • La porta destinationAppUrl è impostata sulla porta 80, il valore predefinito per IIS.

    • Se, nei passaggi successivi, non è possibile connettersi all'host remoto da Visual Studio usando il nome host, testare l'indirizzo IP del server al posto del nome host.

      Nota

      Se si esegue la pubblicazione in IIS in una macchina virtuale di Azure, è necessario aprire una porta in ingresso per Distribuzione Web e IIS nel gruppo Sicurezza di rete. Per informazioni dettagliate, vedere Aprire le porte a una macchina virtuale.

  5. Copiare questo file nel computer in cui si esegue Visual Studio.

Importare le impostazioni di pubblicazione in Visual Studio e distribuire

  1. Nel computer in cui è aperto il progetto ASP.NET in Visual Studio fare clic con il pulsante destro del mouse sul progetto in Esplora soluzioni e scegliere Pubblica.

    Se sono stati configurati dei profili di pubblicazione, viene visualizzato il riquadro Pubblica. Fare clic su Nuovo o Crea nuovo profilo.

  2. Selezionare l'opzione per importare un profilo.

    Nella finestra di dialogo Pubblica fare clic su Importa profilo.

    Choose Publish

  3. Passare al percorso del file delle impostazioni di pubblicazione creato nella sezione precedente.

  4. Nella finestra di dialogo Importa file di pubblicazione Impostazioni passare a e selezionare il profilo creato nella sezione precedente e fare clic su Apri.

    Fare clic su Fine per salvare il profilo di pubblicazione e quindi su Pubblica.

    Visual Studio avvia il processo di distribuzione e la finestra Output mostra lo stato di avanzamento e i risultati.

    Se si verificano errori di distribuzione, fare clic su Altre azioni>Modifica per modificare le impostazioni. Modificare le impostazioni e fare clic su Convalida per testare le nuove impostazioni. Se il nome host non viene trovato, provare l'indirizzo IP anziché il nome host nei campi SERVER e URL di destinazione.

    Edit settings in the Publish tool

Quando la distribuzione è completata, l'app viene avviata automaticamente.

Problemi comuni

Prima di tutto, controllare la finestra Output in Visual Studio per informazioni sullo stato e controllare i messaggi di errore. In aggiunta:

  • Se non è possibile connettersi all'host usando il nome host, provare invece l'indirizzo IP.
  • Assicurarsi che le porte necessarie siano aperte nel server remoto.
  • Per ASP.NET Core, in IIS è necessario assicurarsi che il campo Pool di applicazioni per DefaultAppPool sia impostato su Nessun codice gestito.
  • Verificare che la versione di ASP.NET usata nell'app corrisponda alla versione installata nel server. Per la tua app, puoi visualizzare e impostare la versione nella pagina Proprietà . Per impostare l'app su una versione diversa, è necessario installare tale versione.
  • Se l'app ha tentato di aprire, ma viene visualizzato un avviso del certificato, scegliere di considerare attendibile il sito. Se l'avviso è già stato chiuso, è possibile modificare il file *.pubxml nel progetto e aggiungere l'elemento seguente: <AllowUntrustedCertificate>true</AllowUntrustedCertificate>. Questa impostazione è solo per i test.
  • Se l'app non viene avviata da Visual Studio, avviare l'app in IIS per verificare che sia stata distribuita correttamente.