Generazione degli esempi Windows Communication Foundation

Gli esempi di Windows Communication Foundation (WCF) possono essere compilati usando IDE di Visual Studio o il comando msbuild dalla riga di comando. Entrambe le procedure sono descritte in questo articolo.

Nota

Prima di compilare o eseguire uno degli esempi WCF, accertare di aver eseguito la Procedura di configurazione monouso per gli esempi di Windows Communication Foundation.

Per compilare l'esempio utilizzando il prompt dei comandi

  1. Aprire il Prompt dei comandi per gli sviluppatori per Visual Studio, quindi spostarsi nella sottodirectory specifica del linguaggio del percorso della directory in cui si è installato l'esempio.

  2. Digitare msbuild nella riga di comando. I file di programma client vengono compilati in client\bin, mentre i file del programma del servizio vengono compilati in service\bin. Se il servizio viene ospitato in Internet Information Services (IIS), i file del programma del servizio vengono inoltre copiati nella directory servicemodelsamples e nella sottodirectory \bin.

Nota

È necessario impostare ACLs su %systemdrive%\inetpub\wwwroot per concedere autorizzazioni di modifica per l'account in esecuzione. In caso contrario vi saranno errori relativi a eventi post-compilazione. In alternativa, è possibile lasciare le ACL come sono ed eseguire il prompt dei comandi SDK come amministratore.

Per compilare l'esempio utilizzando Visual Studio

  1. Da menu File in Visual Studio, selezionare ApriProgetto/Soluzione>. Passare alla sottodirectory specifica del linguaggio nella directory in cui è stato installato l'esempio, quindi fare doppio clic sull'icona del file .sln per aprire la soluzione in Visual Studio.

  2. Dal menu Compila, scegliere Ricompila soluzione.

    I file di programma client vengono compilati in client\bin, mentre i file del programma del servizio vengono compilati in service\bin. Se il servizio viene ospitato su IIS, i file del programma del servizio vengono inoltre copiati nella directory servicemodelsamples e nella sottodirectory \bin.

Nota

È necessario impostare ACLs su %systemdrive%\inetpub\wwwroot per concedere autorizzazioni di modifica per l'account in esecuzione. In caso contrario vi saranno errori relativi a eventi post-compilazione. In alternativa, è possibile lasciare le ACL come sono ed eseguire il prompt dei comandi SDK o Visual Studio come amministratore. Anche alcune azioni di Visual Studio (ad esempio allegare un debugger al processo di lavoro ASP.NET) richiedono privilegi amministrativi.

Impostare file batch e script

I file batch e gli script Setup.exe e Cleanup.exe devono essere eseguiti dal prompt dei comandi per gli sviluppatori per Visual Studio. Diversi file di installazione e pulizia eseguono attività che richiedono privilegi amministrativi e devono essere avviati con privilegi di questo tipo.

Importanti informazioni di sicurezza sugli endpoint dei metadati

Per impedire la divulgazione involontaria dei metadati del servizio potenzialmente sensibili, la configurazione predefinita per i servizi Windows Communication Foundation (WCF) disabilita la pubblicazione dei metadati. Questo comportamento è protetto per impostazione predefinita, ma significa inoltre che non è possibile usare uno strumento di importazione di metadati (ad esempio Svcutil.exe) per generare il codice client necessario per chiamare il servizio, a meno che il comportamento di pubblicazione dei metadati del servizio non venga abilitato in modo esplicito in fase di configurazione. Per rendere più semplice la sperimentazione con gli esempi, quasi tutti gli esempi espongono un endpoint di pubblicazione dei metadati non protetto. Tali endpoint sono potenzialmente disponibili per utenti anonimi non autenticati e bisogna prestare attenzione prima di distribuirli, al fine di garantire che la pubblicazione dei metadati di un servizio sia appropriata. Per altre informazioni sulla pubblicazione dei metadati del servizio, vedere l'esempio Comportamento di pubblicazione dei metadati. Per un esempio di protezione di un endpoint di metadati, vedere l'esempio Endpoint di metadati protetto personalizzato.

Gestione delle eccezioni

In genere questi esempi non includono la gestione delle eccezioni per focalizzare il codice sull'argomento dell'esempio. Per altre informazioni sulla gestione delle eccezioni, vedere l'esempio Eccezioni previste.

Rigenerazione client e configurazione con Svcutil

È possibile usare lo strumento ServiceModel Metadati Utility Tool (Svcutil.exe) per rigenerare il codice client e la configurazione per la maggior parte degli esempi. Alcuni esempi richiedono una configurazione manuale. Ad esempio, se si utilizza Svcutil.exe per rigenerare la configurazione per un esempio che utilizza credenziali del certificato client, si devono specificare manualmente le credenziali precedentemente configurate. Alcuni esempi utilizzano opzioni Svcutil.exe specifiche per influire sul codice generato, queste opzioni sono specificate in argomenti di esempio appositi.

Per rigenerare client e file di configurazione

  1. Aprire il prompt dei comandi SDK, quindi spostarsi nella sottodirectory specifica del linguaggio del percorso della directory in cui si è installato l'esempio.

  2. Se il servizio è di tipo ospitato sul Web, utilizzare il comando seguente.

    svcutil.exe /n:"http://Microsoft.ServiceModel.Samples,Microsoft.ServiceModel.Samples" http://localhost/servicemodelsamples/service.svc/mex /out:generatedClient.cs
    

    Se il servizio è di tipo indipendente, digitare il comando seguente.

    svcutil.exe /n:"http://Microsoft.ServiceModel.Samples,Microsoft.ServiceModel.Samples" http://localhost:8000/servicemodelsamples/service.svc/mex /out:generatedClient.cs
    

    Sostituire http://localhost:8000/ServiceModelSamples/service.svc/mex con l'indirizzo dell'endpoint MEX del servizio self-hosted.

    Per generare il client in un tipo Visual Basic, utilizzare il comando seguente.

    svcutil.exe /n:"http://Microsoft.ServiceModel.Samples,Microsoft.ServiceModel.Samples" http://localhost/servicemodelsamples/service.svc/mex /l:vb /out:generatedClient.vb
    

    Se il servizio è di tipo indipendente, utilizzare il comando seguente.

    svcutil.exe /n:"http://Microsoft.ServiceModel.Samples,Microsoft.ServiceModel.Samples" http://localhost:8000/servicemodelsamples/service.svc/mex /l:vb /out:generatedClient.vb
    

    Nota

    Per ignorare la generazione della configurazione client, aggiungere l'opzione /noConfig.

Vedi anche