Erstellen der Windows Communication Foundation-Beispiele
Die Windows Communication Foundation-Beispiele (WCF) können mithilfe der Visual Studio-IDE oder des msbuild--Befehls an der Befehlszeile erstellt werden. In diesem Artikel werden beide Vorgehensweisen beschrieben.
Hinweis
Stellen Sie vor dem Erstellen oder Ausführen der WCF-Beispiele sicher, dass Sie das einmalige Setupverfahren für die Windows Communication Foundation-Beispiele ausgeführt haben.
So erstellen Sie das Beispiel mithilfe einer Eingabeaufforderung
Öffnen Sie eine Developer-Eingabeaufforderung für Visual Studio, und navigieren Sie zu dem sprachspezifischen Unterverzeichnis in dem Verzeichnis, in dem Sie das Beispiel installiert haben.
Geben Sie
msbuild
an der Befehlszeile ein. Die Clientprogrammdateien werden im Verzeichnis client\bin erstellt, und die Dienstprogrammdateien werden im Verzeichnis service\bin erstellt. Wenn der Dienst von Internetinformationsdienste (IIS) gehostet wird, werden die Dienstprogrammdateien auch in das Verzeichnis servicemodelsamples und dessen 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 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
Wählen Sie in Visual Studio im Menü Datei die Option Öffnen>Projekt/Projektmappe aus. 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.
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.
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 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
Die Batchdateien und Skripts „Setup.exe“ und „Cleanup.exe“ müssen an einer Developer-Eingabeaufforderung für Visual Studio ausgeführt werden. Einige Setup- und Cleanup-Dateien führen Aufgaben aus, für die Administratorrechte erforderlich sind. Sie müssen daher mit entsprechenden Rechten gestartet werden.
Wichtige Sicherheitsinformationen über Metadatenendpunkte
Um ein unbeabsichtigtes Veröffentlichen von möglicherweise vertraulichen Dienstmetadaten zu vermeiden, wird mit der Standardkonfiguration für Windows Communication Foundation (WCF)-Dienste die Metadatenveröffentlichung deaktiviert. Dieses Verhalten ist standardmäßig 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 verfügbar sein, allerdings muss vor der Bereitstellung dieser Endpunkte sorgfältig darauf geachtet werden, dass die Offenlegung der Metadaten eines Diensts angemessen ist. Weitere Informationen zum Veröffentlichen von Dienstmetadaten finden Sie im Beispiel Metadatenveröffentlichungsverhalten. Ein Beispiel zum Schützen eines Metadatenendpunkts finden Sie im Beispiel Benutzerdefinierter sicherer Metadatenendpunkt.
Ausnahmebehandlung
Im Allgemeinen enthalten diese Beispiele keine Ausnahmebehandlung, damit der Code auf das Thema des jeweiligen Beispiels beschränkt werden kann. Weitere Informationen zur Ausnahmebehandlung 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 die Konfiguration für die meisten Beispiele erneut 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
Öffnen Sie eine SDK-Eingabeaufforderung, und navigieren Sie zu dem sprachspezifischen Unterverzeichnis unterhalb des Verzeichnisses, in dem Sie das Beispiel installiert haben.
Wenn der Dienst im Internet gehostet wird, 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 selbst gehostet 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 selbstgehosteten Diensts.Verwenden Sie zum Generieren des Clients in Visual Basic den folgenden Befehl.
svcutil.exe /n:"http://Microsoft.ServiceModel.Samples,Microsoft.ServiceModel.Samples" http://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" http://localhost:8000/servicemodelsamples/service.svc/mex /l:vb /out:generatedClient.vb
Hinweis
Wenn Sie die Generierung der Clientkonfiguration überspringen möchten, fügen Sie die Option /noConfig hinzu.