Erstellen der Windows Communication Foundation-Beispiele

Die Windows Communication Foundation (WCF)-Beispiele können mit Visual Studio 2005 oder mit dem Befehl msbuild in der Befehlszeile erstellt werden. In diesem Thema werden beide Vorgehensweisen beschrieben.

Tipp

Vor dem Erstellen oder Ausführen eines der WCF-Beispiele müssen Sie sicherstellen, dass Sie die Beispiele zum einmaligen Setupverfahren für Windows Communication Foundation ausgeführt haben.

So erstellen Sie das Beispiel mithilfe einer Eingabeaufforderung

  1. Öffnen Sie die SDK-Eingabeaufforderung, und navigieren Sie zu dem sprachspezifischen Unterverzeichnis unterhalb des Verzeichnisses, in dem Sie das Beispiel installiert haben.

  2. Geben Sie in der Befehlszeile msbuild ein. Die Clientprogrammdateien werden im Verzeichnis client\bin erstellt, und die Dienstprogrammdateien werden im Verzeichnis service\bin erstellt. Wenn der Dienst von IIS (Internet Information Service, Internetinformationsdienste) gehostet wird, werden die Dienstprogrammdateien auch in das Verzeichnis \servicemodelsamples und dessen Unterverzeichnis \bin kopiert.

Tipp

Sie müssen die Zugriffssteuerungslisten (Access Control List, ACL) für %systemdrive%\inetpub\wwwroot festlegen, um dem Konto, unter dem das Programm ausgeführt wird, Berechtigungen zum Ändern zu erteilen. Andernfalls führen einige Postbuildereignisse zu Fehlern. Sie können aber auch die ACLs unverändert lassen und die SDK-Eingabeaufforderung als Administrator ausführen.

So erstellen Sie das Beispiel mithilfe von Visual Studio

  1. Wenn Sie Windows Vista oder Windows Server 2008 verwenden und mit Visual Studio 2005 arbeiten, müssen Sie Visual Studio mit höheren Berechtigungen ausführen. Klicken Sie hierzu mit der rechten Maustaste auf das Symbol im Startmenü, und klicken Sie dann auf Als Administrator ausführen.

  2. Klicken Sie in Visual Studio im Menü Datei auf Öffnen und dann auf Projekt/Projektmappe. Wechseln Sie zu dem sprachspezifischen Unterverzeichnis in dem Verzeichnis, in dem Sie das Beispiel installiert haben, und klicken Sie auf das Symbol der SLN-Datei, um die Projektmappe in Visual Studio zu öffnen.

  3. Wählen Sie im Menü Erstellen die Option Projektmappe neu erstellen aus. Die Clientprogrammdateien werden im Verzeichnis client\bin erstellt, und die Dienstprogrammdateien werden im Verzeichnis service\bin erstellt. Wenn der Dienst in IIS gehostet wird, werden die Dienstprogrammdateien auch in das Verzeichnis \servicemodelsamples und dessen Unterverzeichnis \bin kopiert.

Tipp

Sie müssen die Zugriffssteuerungslisten (Access Control List, ACL) für %systemdrive%\inetpub\wwwroot festlegen, um dem Konto, unter dem das Programm ausgeführt wird, Berechtigungen zum Ändern zu erteilen. Andernfalls führen einige Postbuildereignisse zu Fehlern. Sie können die ACLs aber auch unverändert lassen und die SDK-Eingabeaufforderung oder Visual Studio als Administrator ausführen. Für einige Visual Studio-Aktionen (wie das Anfügen eines Debuggers an den ASP.NET-Workerprozess) sind ebenfalls Administratorrechte erforderlich.

Setupbatchdateien und Skripts

Setup.exe und Cleanup.exe-Batchdateien und Skripts sollten in der SDK-Eingabeaufforderung ausgeführt werden. Einige Setup- und Cleanup-Dateien führen Aufgaben aus, für die Administratorrechte erforderlich sind, und sollten daher mit diesen Rechten gestartet werden.

Wichtige Sicherheitsinformationen über Metadatenendpunkte

Um zu verhindern, dass potenziell vertrauliche Dienstmetadaten versehentlich offengelegt werden, wird in der Standardkonfiguration für Windows Communication Foundation (WCF)-Dienste das Veröffentlichen von Metadaten deaktiviert. Dieses Verhalten ist in der Standardeinstellung sicher, bedeutet aber auch, dass der zum Aufrufen des Diensts erforderliche Clientcode nicht mithilfe eines Tools zum Importieren von Metadaten (wie Svcutil.exe) generiert werden kann. Dies ist nur dann möglich, wenn das Verhalten des Diensts zum Veröffentlichen von Metadaten in der Konfiguration explizit aktiviert ist. Um Ihnen das Experimentieren mit den Beispielen zu vereinfachen, wird in fast allen Beispielen ein ungesicherter Endpunkt zum Veröffentlichen von Metadaten verfügbar gemacht. Solche Endpunkte können für anonyme, nicht authentifizierte Benutzer möglicherweise verfügbar sein. Daher muss beim Bereitstellen solcher Endpunkte sorgfältig darauf geachtet werden, dass das Öffentlichmachen von Dienstmetadaten sachgerecht erfolgt. Weitere Informationen zum Veröffentlichen von Dienstmetadaten finden Sie im Beispiel Metadatenveröffentlichungsverhalten. Ein Beispiel zum Absichern eines Metadatenendpunkts finden Sie im Beispiel unter Benutzerdefinierter sicherer Metadatenendpunkt.

Ausnahmebehandlung

Im Allgemeinen enthalten diese Beispiele keine Ausnahmebehandlung, damit sich der Code nur auf das Thema des jeweiligen Beispiels konzentriert. Weitere Informationen zum Behandeln von Ausnahmen finden Sie im Beispiel Erwartete Ausnahmen.

Neugenerieren von Clients und Konfiguration mit "Svcutil"

Sie können das ServiceModel Metadata Utility Tool (Svcutil.exe) verwenden, um Clientcode und Konfiguration für die meisten Beispiele neu zu generieren. Bei einigen Beispielen ist es erforderlich, die Konfiguration manuell zu bearbeiten. Wenn Sie beispielsweise mit Svcutil.exe die Konfiguration für ein Beispiel neu generieren, in dem Clientzertifikat-Anmeldeinformationen verwendet werden, müssen Sie die vorher konfigurierten Anmeldeinformationen manuell angeben. Einige Beispiele beeinflussen den generierten Code mithilfe bestimmter Optionen für Svcutil.exe. Diese Optionen sind dann in den jeweiligen Beispielthemen angegeben.

So generieren Sie den Client und die Konfigurationsdateien neu

  1. Öffnen Sie eine SDK-Eingabeaufforderung, und navigieren Sie zu dem sprachspezifischen Unterverzeichnis unterhalb des Verzeichnisses, in dem Sie das Beispiel installiert haben.

  2. Wenn der Dienst im Web gehostet wird, verwenden Sie den folgenden Befehl.

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

    Wenn der Dienst selbst gehostet ist, verwenden Sie den folgenden Befehl.

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

    Ersetzen Sie https://localhost:8000/ServiceModelSamples/service.svc/mex durch die Adresse des mex-Endpunkts des selbst gehosteten Diensts.

    Verwenden Sie zum Generieren des Clients in Visual Basic den folgenden Befehl.

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

    Wenn der Dienst selbst gehostet ist, verwenden Sie den folgenden Befehl.

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

    Tipp

    Wenn Sie die Generierung der Clientkonfiguration überspringen möchten, fügen Sie die Option /noConfig hinzu.

Siehe auch

Konzepte

Durchführen der Windows Communication Foundation-Beispiele

Weitere Ressourcen

ServiceModel Metadata Utility Tool (Svcutil.exe)

Send comments about this topic to Microsoft.
© 2007 Microsoft Corporation. All rights reserved.