Condividi tramite


Pubblicazione del servizio WCF

La pubblicazione del servizio Windows Communication Foundation (WCF) consente di procedere dall'ambiente di sviluppo iniziale fornito dall'host del servizio WCF e dal client di test WCF per distribuire effettivamente l'applicazione in un ambiente di produzione a scopo di test. Prima di eseguire il commit in un piano di distribuzione finale, è possibile usare la pubblicazione del servizio Windows Communication Foundation (WCF) per verificare che il servizio WCF funzioni correttamente e sia pronto per la pubblicazione. È anche possibile scegliere di distribuire le librerie di servizi WCF in diverse posizioni di destinazione per il test.

Servizi supportati e località di destinazione

La pubblicazione del servizio WCF supporta la pubblicazione di servizi WCF creati dal set di modelli di libreria di servizi WCF e i modelli di elemento corrispondenti, inclusi i seguenti:

  • Modello libreria di servizi WCF con modello di elemento.

  • Libreria del servizio di distribuzione.

È possibile trovare questi modelli di servizio scegliendo File>nuovo progetto> [Visual Basic o Visual C#] >WCF. Per altri modelli WCF in questo percorso (inclusi Servizio di flusso di lavoro WCF e Servizio WCF), puoi pubblicare usando One-Click pubblicazione per le applicazioni Web.

Il servizio può essere pubblicato nelle posizioni di destinazione seguenti.

  • IIS locale.

  • File System.

  • Sito FTP.

Utilizzo della pubblicazione del servizio WCF

Per distribuire un'implementazione del servizio, seguire questa procedura:

  1. Aprire Visual Studio con privilegi elevati (fare clic con il pulsante destro del mouse sul file eseguibile e scegliere Esegui come amministratore per aprirlo). Se si usa IIS 7.0 o versione successiva, assicurarsi di aver installato il componente "Compatibilità configurazione IIS Metabase e IIS6" usando "Attivare o disattivare le funzionalità di Windows" nel Pannello di controllo.

  2. Aprire un progetto di servizio, scegliere Compila>Pubblica <Nome progetto> dal menu principale oppure fare clic con il pulsante destro del mouse sul progetto in Esplora soluzioni e scegliere Pubblica.

  3. Verrà visualizzata la finestra Pubblica . Fare clic su .... pulsante per specificare la destinazione in cui il servizio deve essere distribuito. È possibile selezionare per distribuire l'applicazione in IIS, file system o sito FTP locale. Se si distribuisce l'applicazione in IIS locale, è possibile selezionare il sito Web e crearvi l'applicazione Web facendo clic sull'icona Crea nuova applicazione Web nell'angolo in alto a destra.

  4. Dopo aver fatto clic su Pubblica nella finestra principale, Visual Studio distribuisce l'applicazione nel percorso di destinazione specificato e copia i file Web.config, svc e assembly nella directory di destinazione. . Il nome di .svc sarà "ProjectName.ServiceName.svc". Dopo la pubblicazione del servizio, è possibile trovare un collegamento rapido nella finestra Output di Visual Studio, simile a "Connessione a http://localhost/WebApplicationFolderName...". È possibile premere CTRL e fare clic sul collegamento per aprire una pagina del browser in Visual Studio per visualizzare la struttura della directory del servizio.

    Se non è possibile passare al sito, è possibile che il browser della directory non sia abilitato in IIS. Seguire i suggerimenti nella sezione "Cose che è possibile provare" per abilitarlo. In alternativa, è possibile digitare http://localhost/WebApplicationFolderName/ProjectName.ServiceName.svc direttamente per visualizzare la pagina del servizio.

È possibile usare Publish per specificare se si desidera copiare l'assembly, la configurazione e il file con estensione svc per tutti i servizi definiti nel progetto nel percorso di destinazione e sovrascrivere i file esistenti nella destinazione.

Se si sceglie di distribuire l'applicazione in IIS locale, è possibile che si verifichino errori correlati all'installazione di IIS. Assicurarsi che IIS sia installato correttamente. È possibile immettere http://localhost nella barra degli indirizzi del browser e verificare se viene visualizzata la pagina predefinita di IIS. In alcuni casi, i problemi possono anche essere causati da una registrazione non corretta di ASP.NET o WCF in IIS. È possibile aprire il prompt dei comandi per gli sviluppatori per Visual Studio ed eseguire il comando aspnet_regiis.exe -ir per risolvere i problemi di registrazione ASP.NET oppure eseguire il comando ServiceModelReg.exe –ia per risolvere i problemi di registrazione WCF.

File generati per la pubblicazione

Prima che una libreria di servizi WCF possa essere ospitata sul Web, i file seguenti vengono generati dallo strumento: file di assembly, file Web.config e file con estensione svc. Tutti i file vengono copiati nel percorso di destinazione. Il servizio viene quindi pubblicato.

File di assembly

Quando si pubblica un servizio WCF usando questo strumento, il servizio viene compilato automaticamente e i file di assembly vengono generati nel progetto di servizio dopo la compilazione.

. SVC File

L'operazione di pubblicazione genera un file *.svc per ogni servizio WCF, indipendentemente dal fatto che il file esista o meno, per garantire la validità della versione. Esistono due tipi diversi di file svc: uno per la libreria del servizio WCF e la libreria del servizio di sindacazione, e un altro per la libreria del servizio del flusso di lavoro sequenziale e macchina a stati. Il file *.svc generato viene copiato nella cartella radice nel percorso di destinazione.

file Web.config

Ogni volta che un progetto di servizio viene pubblicato in un percorso di destinazione specifico, viene creato un file Web.config.

Il file di Web.config generato include sezioni Web utili per l'hosting Web e il contenuto di App.config per la libreria di servizi WCF con le modifiche seguenti:

  • L'indirizzo di base è escluso.

  • Le impostazioni nell'elemento <diagnostics> vengono escluse per mantenere le impostazioni di traccia della piattaforma di destinazione.

Pubblicazione di servizi WCF con associazioni non HTTP in IIS

Se si usa IIS7.0 o versione successiva, è possibile pubblicare servizi WCF con associazioni non HTTP in IIS. È necessario eseguire alcune preconfigurazioni. Per altre informazioni, vedere gli argomenti in Hosting in Windows Process Activation Service.

Sicurezza

La pubblicazione in IIS locale richiede privilegi di amministratore, perché IIS richiede l'esecuzione nell'account amministratore. Se un utente senza privilegi di amministratore apre la pubblicazione del servizio WCF, IIS non è disponibile come percorso di destinazione. La pubblicazione nel file system o nel sito FTP funziona senza privilegi di amministratore.

Vedere anche