Condividi tramite


Host servizio WCF (WcfSvcHost.exe)

Windows Communication Foundation (WCF) Service Host (WcfSvcHost.exe) consente di avviare il debugger di Visual Studio (F5) per ospitare e testare automaticamente un servizio implementato. È quindi possibile testare il servizio mediante Client di test WCF (WcfTestClient.exe) o un client specifico per trovare e correggere qualsiasi errore potenziale.

Host servizio WCF

Host servizio WCF enumera i servizi in un progetto di servizio WCF, carica la configurazione del progetto e crea un'istanza di un host per ciascun servizio che trova. Lo strumento è integrato in Visual Studio tramite il modello Servizio WCF e viene richiamato quando si avvia eseguire il debug del progetto.

Mediante Servizio host WCF, è possibile ospitare un servizio WCF (in un progetto di libreria di servizi WCF) senza scrivere codice aggiuntivo o eseguire il commit di uno specifico host durante lo sviluppo.

Nota

L'host del servizio WCF non supporta l'attendibilità parziale. Se si desidera utilizzare un servizio WCF in attendibilità parziale, non utilizzare il modello Progetto Libreria di servizi WCF in Visual Studio per compilare il servizio. Creare invece un nuovo sito Web in Visual Studio, scegliendo il modello Sito Web servizio WCF, che possa ospitare il servizio in un server Web su cui è supportato il trust parziale di WCF.

Tipi di progetto ospitati da Host servizio WCF

Host servizio WCF può fungere da host per i seguenti tipi di progetto di libreria di servizi WCF: Libreria di servizi WCF, Libreria di servizi flusso di lavoro sequenziale, Libreria di servizi flusso di lavoro macchina a stati e Libreria d servizi con pubblicazione via RSS. Host servizio WCF può anche fungere da host per i servizi che possono essere aggiunti a un progetto di libreria di servizi mediante la funzionalità Aggiungi elemento. Questo include Servizio WCF, Servizio macchina a stati WF, Servizio sequenziale WF, Servizio macchina a stati WF XAML Servizio sequenziale WF XAML.

Tuttavia, è necessario notare che lo strumento non consentirà di configurare un host. Per questa attività, è necessario modificare manualmente il file App.config. Lo strumento non convalida nemmeno i file di configurazione definiti dall'utente.

Attenzione

Host servizio WCF non deve essere utilizzato per l'hosting di servizi in un ambiente di produzione in quanto non è stato codificato per questo scopo. Servizio host WCF non supporta i requisiti di affidabilità, sicurezza e gestibilità di un tale ambiente. Utilizzare invece IIS in quanto fornisce migliori funzionalità di affidabilità e monitoraggio ed è la soluzione preferita per i servizi di hosting. Dopo avere completato lo sviluppo dei servizi, è necessario eseguirne la migrazione dal Servizio host WCF a IIS.

Scenari per l'utilizzo di Host servizio WCF in Visual Studio

Nella tabella seguente sono elencati tutti i parametri nella finestra di dialogo Argomenti della riga di comando che è accessibile facendo clic con il pulsante destro del mouse sul progetto in Esplora soluzioni in Visual Studio, selezionando Proprietà, quindi la scheda Debug e scegliendo Avvia progetto. Questi parametri sono utili nella configurazione di Host servizio WCF.

Parametro Significato
/client Un parametro facoltativo che specifica il percorso di un file eseguibile da eseguire dopo l'hosting dei servizi. Dopo l'hosting viene avviato il Client test WCF.
/clientArg Consente di specificare una stringa come argomento che viene passato all'applicazione client personalizzata.
/? Visualizza il testo della Guida.

Utilizzo di Client di test WCF

Dopo avere creato un nuovo progetto di servizio WCF e avere premuto F5 per avviare il debugger, Servizio Host WCF avvia l'hosting di tutti i servizi che trova nel progetto. Il client di test WCF viene aperto automaticamente e visualizza un elenco degli endpoint di servizio definiti nel file di configurazione. Dalla finestra principale, è possibile testare i parametri e richiamare il servizio.

Per garantire che venga utilizzato Client di test WCF, fare clic con il pulsante destro del mouse sul progetto in Esplora soluzioni in Visual Studio, selezionare Proprietà, quindi selezionare la scheda Debug. Fare clic su Avvia progetto e assicurarsi nella finestra di dialogo Argomenti della riga di comando sia visualizzato quanto segue.

/client:WcfTestClient.exe

Utilizzo di un client personalizzato

Per utilizzare un client personalizzato, fare clic con il pulsante destro del mouse sul progetto in Esplora soluzioni in Visual Studio, selezionare Proprietà, quindi selezionare la scheda Debug. Scegliere Avvia progetto e modificare il parametro /client nella finestra di dialogo Argomenti della riga di comando per puntare al client personalizzato, come indicato nell'esempio seguente.

/client:"path/CustomClient.exe"

Quando si preme F5 per avviare nuovamente il servizio, Host servizio WCF avvia automaticamente il client personalizzato quando si avvia il debugger.

È anche possibile utilizzare il parametro /clientArg: per specificare una stringa come argomento passato all'applicazione client personalizzata, come indicato nell'esempio seguente.

/client:"path/CustomClient.exe" /clientArg:"arguments that are passed to Client"

Ad esempio, se si utilizza il modello Libreria di servizi di diffusione, sarà possibile utilizzare gli argomenti della riga di comando seguenti:

/client:iexplore.exe /clientArgs:http://localhost:8731/Design_Time_Addresses/Feed1/

Specifica nessuno client

Per specificare che non verrà utilizzato alcun client dopo l'hosting del servizio WCF, fare clic con il pulsante destro del mouse sul progetto in Esplora soluzioni in Visual Studio, selezionare Proprietà, quindi selezionare la scheda Debug. Scegliere Avvia progetto e lasciare vuota la finestra di dialogo Argomenti della riga di comando.

Utilizzo di un host personalizzato

Per utilizzare un host personalizzato, fare clic con il pulsante destro del mouse sul progetto in Esplora soluzioni in Visual Studio, selezionare Proprietà, quindi selezionare la scheda Debug. Scegliere Avvia programma esterno e immettere il percorso completo dell'host personalizzato. È anche possibile utilizzare la finestra di dialogo Argomenti della riga di comando per specificare argomenti da passare all'host.

Interfaccia utente dell'Host servizio WCF

Quando si richiama inizialmente l'Host servizio WCF (premendo F5 in Visual Studio), viene aperta automaticamente la finestra Host servizio WCF. Quando Host servizio WCF è in esecuzione, nell'area della notifica viene visualizzata l'icona del programma. Fare doppio clic sull'icona per aprire la finestra Host servizio WCF

Quando si verificano gli errori durante l'hosting del servizio, verrà aperta la finestra Host servizio WCF per visualizzare informazioni rilevanti.

La finestra principale Host servizio WCF contiene due menu:

  • File: contiene i comandi Chiudi ed Esci. Quando si fa clic su Chiudi, viene chiusa la finestra di dialogo Host servizio WCF, ma prosegue l'hosting dei servizi. Quando si fa clic su Esci, viene chiuso anche Host servizio WCF. Questo arresta anche tutti i servizi in hosting.

  • Guida: contiene il comando Informazioni su che visualizza informazioni sulla versione. Contiene anche il comando Guida che consente di aprire un file della Guida.

La finestra principale Host servizio WCF contiene due aree:

  • La prima area è Servizio. Contiene un elenco che visualizza informazioni di base su tutti i servizi. Le informazioni includono:

    • Servizio: elenca tutti i servizi.

    • Stato: elenca lo stato del servizio. I valori validi sono "Avviato", "Arrestato" ed "Errore".

    • Indirizzo metadati: visualizza l'indirizzo dei metadati dei servizi.

  • La seconda area è Informazioni aggiuntive. Visualizza una spiegazione dettagliata dello stato del servizio quando la riga del servizio specifica è selezionata nell'area Servizio. Se lo stato è Errore, è possibile visualizzare il messaggio di errore completo sullo schermo.

Interruzione dell'Host servizio WCF

È possibile arrestare Host servizio WCF nei quattro modi seguenti:

  • Arrestare la sessione di debug in Visual Studio.

  • Selezionare Esci dal menu File nella finestra Host servizio WCF.

  • Selezionare Esci dal menu di scelta rapida dell'icona della barra delle applicazioni Host servizio WCF nell'area di notifica del sistema.

  • Uscire da Client di test WCF se è utilizzato.

Utilizzo di Host servizio senza privilegio di amministratore

Per consentire agli utenti senza privilegio di amministratore di sviluppare servizi WCF, viene creato un ACL (Elenco di controllo di accesso) per lo spazio dei nomi "http://+:8731/Design_Time_Addresses"" durante l'installazione di Visual Studio. L'ACL viene impostato su (UI) che include tutti gli utenti interattivi che hanno eseguito l'accesso al computer. Gli amministratori possono aggiungere o rimuovere utenti da questo ACL oppure aprire porte aggiuntive. Questo ACL consente agli utenti di utilizzare Host automatico servizio WCF (wcfSvcHost.exe) senza disporre dei privilegi di amministratore.

È anche possibile modificare l'accesso utilizzando lo strumento netsh.exe in Windows Vista con l'account di amministratore con privilegi elevati. Di seguito è riportato un esempio dell'utilizzo di netsh.exe.

netsh http add urlacl url=http://+:8001/MyService user=<domain>\<user>

Per ulteriori informazioni su netsh.exe, vedere la pagina relativa alle "Modalità di utilizzo dello strumento Netsh.exe e delle relative opzioni della riga di comando".

Vedi anche