Teilen über


Erstellen der Windows Communication Foundation-Beispiele

Die Beispiele für Windows Communication Foundation (WCF) können mithilfe der Visual Studio-IDE oder des Msbuild-Befehls über die Befehlszeile erstellt werden. Beide Verfahren werden in diesem Artikel beschrieben.

Hinweis

Stellen Sie vor dem Erstellen oder Ausführen eines der WCF-Beispiele sicher, dass Sie die One-Time Einrichtungsprozedur der Windows Communication Foundation-Beispiele ausgeführt haben.

So erstellen Sie das Beispiel mithilfe einer Eingabeaufforderung

  1. Öffnen Sie die Entwickler-Eingabeaufforderung für Visual Studio und navigieren Sie zu dem sprachspezifischen Unterverzeichnis in dem Verzeichnis, in dem Sie das Beispiel installiert haben.

  2. Geben Sie msbuild an der Befehlszeile ein. Die Clientprogrammdateien werden in "client\bin " erstellt, und die Dienstprogrammdateien werden in "service\bin" erstellt. Wenn der Dienst von Internetinformationsdienste (INTERNET Information Services, IIS) gehostet wird, werden die Dienstprogrammdateien ebenfalls in das Verzeichnis "servicemodelsamples " und das zugehörige Unterverzeichnis "\bin " kopiert.

Hinweis

Sie müssen die ACLs für %systemdrive%\inetpub\wwwroot festlegen, um dem Konto, unter dem Ihr Programm ausgeführt wird, Änderungsberechtigungen zu erteilen. Andernfalls schlagen einige Post-Build-Ereignisse fehl. Alternativ können Sie die ACLs unverändert lassen und die SDK-Eingabeaufforderung als Administrator ausführen.

So erstellen Sie das Beispiel mit Visual Studio

  1. Wählen Sie in Visual Studio im Menü Datei die Option Öffnen>Projekt/Projektmappe aus. Navigieren Sie zu dem sprachspezifischen Unterverzeichnis unter dem Verzeichnis, in dem Sie das Beispiel installiert haben, und doppelklicken Sie auf das Symbol der .sln-Datei, um die Projektmappe in Visual Studio zu öffnen.

  2. Wählen Sie im Menü Erstellen die Option Projektmappe neu erstellen aus.

    Die Clientprogrammdateien werden in "client\bin" erstellt, und die Dienstprogrammdateien werden in "service\bin" erstellt. Wenn der Dienst in IIS gehostet wird, werden die Dienstprogrammdateien auch in das Verzeichnis "servicemodelsamples " und das zugehörige Unterverzeichnis "\bin" kopiert.

Hinweis

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 schlagen einige Post-Build-Ereignisse fehl. Alternativ können Sie die ACLs unverändert lassen und die SDK-Eingabeaufforderung oder Visual Studio als Administrator ausführen. Einige Visual Studio-Aktionen (z. B. das Anfügen eines Debuggers an den ASP.NET Arbeitsprozess) erfordern auch Administratorrechte.

Einrichten von Batchdateien und Skripts

Setup.exe und Cleanup.exe Batchdateien und Skripts sollten über die Entwickler-Eingabeaufforderung für Visual Studio ausgeführt werden. Mehrere Einrichtungs- und Bereinigungsdateien führen Aufgaben aus, die Administratorrechte erfordern, und sollten mit Administratorrechten gestartet werden.

Wichtige Sicherheitsinformationen zu Metadatenendpunkten

Um die unbeabsichtigte Offenlegung potenziell sensibler Dienstmetadaten zu verhindern, deaktiviert die Standardkonfiguration für WCF-Dienste (Windows Communication Foundation) die Metadatenveröffentlichung. Dieses Verhalten ist standardmäßig sicher, bedeutet aber auch, dass Sie kein Metadatenimporttool (z. B. Svcutil.exe) verwenden können, um den zum Aufrufen des Diensts erforderlichen Clientcode zu generieren, es sei denn, das Metadatenveröffentlichungsverhalten des Diensts ist in der Konfiguration explizit aktiviert. Um das Experimentieren mit den Beispielen zu vereinfachen, machen fast alle Beispiele einen unsicheren Metadatenveröffentlichungsendpunkt verfügbar. Solche Endpunkte sind potenziell für anonyme, nicht authentifizierte Nutzer verfügbar. Es ist wichtig, vor der Bereitstellung solcher Endpunkte darauf zu achten, dass die öffentliche Offenlegung der Metadaten eines Dienstes angemessen ist. Weitere Informationen zum Veröffentlichen von Dienstmetadaten finden Sie im Beispiel für das Verhalten der Metadatenveröffentlichung . Ein Beispiel zum Sichern eines Metadatenendpunkts finden Sie im Beispiel für einen benutzerdefinierten Endpunkt für sichere Metadaten .

Ausnahmebehandlung

Im Allgemeinen enthalten diese Beispiele keine Ausnahmebehandlung, um den Code auf das Thema des Beispiels zu konzentrieren. Weitere Informationen zur Ausnahmebehandlung finden Sie im Beispiel "Erwartete Ausnahmen" .

Regenerieren 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. Einige Beispiele erfordern eine manuell bearbeitete Konfiguration. Wenn Sie z. B. Svcutil.exe verwenden, um die Konfiguration für ein Beispiel zu generieren, in dem Clientzertifikatanmeldeinformationen verwendet werden, müssen Sie die zuvor konfigurierten Anmeldeinformationen manuell angeben. Einige Beispiele verwenden spezifische Svcutil.exe Optionen, um den generierten Code zu beeinflussen, diese Optionen werden in den spezifischen Beispielthemen angegeben.

So generieren Sie die Client- und Konfigurationsdateien neu

  1. Öffnen Sie eine SDK-Eingabeaufforderung, und navigieren Sie zum sprachspezifischen Unterverzeichnis unter dem Verzeichnisspeicherort, an dem Sie das Beispiel installiert haben.

  2. Wenn der Dienst ein vom Web gehosteter Typ ist, verwenden Sie den folgenden Befehl.

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

    Wenn der Dienst ein selbst gehosteter Typ ist, verwenden Sie den folgenden Befehl.

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

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

    Verwenden Sie den folgenden Befehl, um den Client in einem Visual Basic-Typ zu generieren.

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

    Wenn der Dienst ein selbst gehosteter Typ ist, verwenden Sie den folgenden Befehl.

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

    Hinweis

    Um die Generierung der Clientkonfiguration zu überspringen, fügen Sie die Option "/noConfig " hinzu.

Siehe auch