Share via


Voorbeelden van Windows Communication Foundation bouwen

De WCF-voorbeelden (Windows Communication Foundation) kunnen worden gemaakt met behulp van de Visual Studio IDE of de msbuild-opdracht vanaf de opdrachtregel. Beide procedures worden beschreven in dit artikel.

Notitie

Voordat u een van de WCF-voorbeelden bouwt of uitvoert, moet u ervoor zorgen dat u de eenmalige installatieprocedure voor de Windows Communication Foundation-voorbeelden hebt uitgevoerd.

Het voorbeeld bouwen met behulp van een opdrachtprompt

  1. Open de opdrachtprompt voor Ontwikkelaars voor Visual Studio en navigeer naar de taalspecifieke submap onder de maplocatie waar u het voorbeeld hebt geïnstalleerd.

  2. Typ msbuild op de opdrachtregel. De clientprogrammabestanden zijn gebouwd op client\bin en de serviceprogrammabestanden worden gebouwd op service\bin. Als de service wordt gehost door Internet Information Services (IIS), worden de bestanden van het serviceprogramma ook gekopieerd naar de map servicemodelsamples en de bijbehorende submap \bin .

Notitie

U moet de ACL's instellen op %systemdrive%\inetpub\wwwroot om wijzigingenmachtigingen te verlenen aan het account waaronder u werkt. Anders mislukken sommige post-build-gebeurtenissen. U kunt de ACL's ook laten zoals ze zijn en de SDK-opdrachtprompt uitvoeren als beheerder.

Het voorbeeld bouwen met Visual Studio

  1. Selecteer >Project/Oplossing openen in het menu Bestand in Visual Studio. Navigeer naar de taalspecifieke submap onder de map waarin u het voorbeeld hebt geïnstalleerd en dubbelklik op het pictogram .sln bestand om de oplossing in Visual Studio te openen.

  2. Selecteer Oplossing opnieuw opbouwen in het menu Opbouwen.

    De clientprogrammabestanden zijn gebouwd op client\bin en de serviceprogrammabestanden worden gebouwd op service\bin. Als de service wordt gehost in IIS, worden de bestanden van het serviceprogramma ook gekopieerd naar de map servicemodelsamples en de bijbehorende submap \bin.

Notitie

U moet de ACL's instellen op %systemdrive%\inetpub\wwwroot om wijzigingenmachtigingen te verlenen aan het account waaronder u werkt. Anders mislukken sommige post-build-gebeurtenissen. U kunt de ACL's ook op dezelfde manier laten staan en de SDK-opdrachtprompt of Visual Studio als beheerder uitvoeren. Voor sommige Visual Studio-acties (zoals het koppelen van een foutopsporingsprogramma aan het ASP.NET-werkproces) zijn ook beheerdersbevoegdheden vereist.

Batch-bestanden en -scripts instellen

Setup.exe en Cleanup.exe batchbestanden en scripts moeten worden uitgevoerd vanaf de opdrachtprompt voor Ontwikkelaars voor Visual Studio. Verschillende installatie- en opschoonbestanden voeren taken uit waarvoor beheerdersbevoegdheden zijn vereist en moeten worden gestart met beheerdersbevoegdheden.

Belangrijke beveiligingsinformatie over metagegevenseindpunten

Om onbedoelde openbaarmaking van mogelijk gevoelige servicemetagegevens te voorkomen, schakelt de standaardconfiguratie voor WCF-services (Windows Communication Foundation) het publiceren van metagegevens uit. Dit gedrag is standaard beveiligd, maar betekent ook dat u geen hulpprogramma voor het importeren van metagegevens (zoals Svcutil.exe) kunt gebruiken om de clientcode te genereren die is vereist om de service aan te roepen, tenzij het publicatiegedrag voor metagegevens van de service expliciet is ingeschakeld in de configuratie. Om het experimenteren met de voorbeelden eenvoudiger te maken, maken bijna alle voorbeelden een onbeveiligd eindpunt voor het publiceren van metagegevens beschikbaar. Dergelijke eindpunten zijn mogelijk beschikbaar voor anonieme niet-geverifieerde consumenten en zorg moeten worden genomen voordat dergelijke eindpunten worden geïmplementeerd om ervoor te zorgen dat de metagegevens van een service openbaar worden weergegeven. Zie het voorbeeld van het publicatiegedrag van metagegevens van de service voor meer informatie over het publiceren van servicemetagegevens. Zie het voorbeeld van het eindpunt voor aangepaste beveiligde metagegevens voor een voorbeeld van het beveiligen van een metagegevenseindpunt.

Afhandeling van uitzonderingen

Over het algemeen bevatten deze voorbeelden geen uitzonderingsafhandeling om de code gericht te houden op het onderwerp van het voorbeeld. Zie het voorbeeld Verwachte uitzonderingen voor meer informatie over het verwerken van uitzonderingen .

Clients en configuratie opnieuw genereren met Svcutil

U kunt het hulpprogramma voor metagegevens van ServiceModel (Svcutil.exe) gebruiken om clientcode en -configuratie opnieuw te genereren voor de meeste voorbeelden. Voor sommige voorbeelden is handmatig bewerkte configuratie vereist. Als u bijvoorbeeld Svcutil.exe gebruikt om de configuratie opnieuw te genereren voor een voorbeeld waarin referenties voor clientcertificaten worden gebruikt, moet u handmatig de eerder geconfigureerde referenties opgeven. Sommige voorbeelden gebruiken specifieke Svcutil.exe opties om de gegenereerde code te beïnvloeden. Deze opties worden opgegeven in de specifieke voorbeeldonderwerpen.

De client- en configuratiebestanden opnieuw genereren

  1. Open een SDK-opdrachtprompt en navigeer naar de taalspecifieke submap onder de maplocatie waar u het voorbeeld hebt geïnstalleerd.

  2. Als de service een door het web gehost type is, gebruikt u de volgende opdracht.

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

    Als de service een zelf-hostend type is, voert u de volgende opdracht uit.

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

    Vervang http://localhost:8000/ServiceModelSamples/service.svc/mex door het adres van het mex-eindpunt van de zelf-hostende service.

    Gebruik de volgende opdracht om de client te genereren in een Visual Basic-type.

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

    Als de service een zelf-hostend type is, gebruikt u de volgende opdracht.

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

    Notitie

    Als u het genereren van clientconfiguratie wilt overslaan, voegt u de optie /noConfig toe.

Zie ook