Problembehandlung für die Tutorials „Erste Schritte mit Windows Communication Foundation“

Dieser Artikel bietet Lösungen für die häufigsten Probleme und Fehler, die beim Ausführen der Schritte im Tutorial: Erste Schritte mit Windows Communication Foundation-Anwendungen auftreten können.

Häufige Probleme

Ich kann die Projektdateien nicht auf meiner Festplatte finden.

In Visual Studio werden Projektdateien in C:\Users\<Benutzername>\source\repos gespeichert.

Ich kann die von Svcutil.exe generierte Datei App.config nicht finden.

In Visual Studio werden im Fenster Vorhandenes Element hinzufügen standardmäßig nur Dateien mit den folgenden Erweiterungen angezeigt:

  • .cs
  • .resx
  • .settings
  • .xsd
  • .wsdl

Um alle Dateitypen anzuzeigen, wählen Sie rechts unten im Fenster Vorhandenes Element hinzufügen in der Dropdownliste Alle Dateien (*.*) aus.

Häufige Fehler

Kompilieren der Dienstanwendung

Fehler BC30420: „Sub Main“ in GettingStartedHost.Module1 nicht gefunden.

Der Einstiegspunkt für die Visual Basic-Anwendung ist falsch. Nehmen Sie die folgende Änderung vor:

  1. Wählen Sie im Fenster Projektmappen-Explorer den Ordner GettingStartedHost und anschließend im Kontextmenü Eigenschaften aus. a. Wählen Sie im Fenster GettingStartedHost für Startup-Objekt die Option Service.Program (oder den Einstiegspunkt für Ihre jeweilige Anwendung) in der Liste aus. b. Wählen Sie im Hauptmenü Datei>Alle speichernaus.

Ausführen der Dienstanwendung

HTTP konnte die URL http://+:8000/GettingStarted/CalculatorService nicht registrieren. Der Prozess verfügt nicht über die Zugriffsrechte für diesen Namespace.

Starten Sie für den ordnungsgemäßen Zugriff mit Administratorrechten den Prozess, der den Windows Communication Foundation-Dienst (WCF) hostet:

  • Für Visual Studio: Wählen Sie im Startmenü das Visual Studio-Programm und dann im Kontextmenü Mehr>Als Administrator ausführen aus.
  • Für ein Konsolenfenster: Wählen Sie im Startmenü die Option Eingabeaufforderung und dann im Kontextmenü Mehr>Als Administrator ausführen aus.
  • Für Windows Explorer: Wählen Sie die ausführbare Datei und dann im Kontextmenü Als Administrator ausführen aus.

Kompilieren der Clientanwendung

CalculatorClient enthält keine Definition für <Methodenname>, und es konnte keine Erweiterungsmethode <Methodenname> gefunden werden, die als erstes Argument eines des Typs CalculatorClient akzeptiert. (Fehlt eine Using-Anweisung oder ein Assemblyverweis?)

Nur die Methoden, die Sie mit dem ServiceOperationAttribute-Attribut markieren, werden öffentlich verfügbar gemacht. Wenn Sie das ServiceOperationAttribute-Attribut einer Methode in der ICalculator-Schnittstelle weglassen, erhalten Sie während der Kompilierung diese Fehlermeldung.

Der Typ- oder Namespacename CalculatorClient wurde nicht gefunden. (Fehlt eine Using-Anweisung oder ein Assemblyverweis?)

Diese Fehlermeldung wird angezeigt, wenn Sie ihrem Clientprojekt nicht die Datei generatedProxy.cs (bzw. generatedProxy.vb) hinzufügen, als Sie sie mit dem Tool Svcutil.exe generiert haben.

Ausführen der Clientanwendung

Unbehandelte Ausnahme: System.ServiceModel.EndpointNotFoundException: Es konnte keine Verbindung mit http://localhost:8000/GettingStarted/CalculatorService hergestellt werden. TCP-Fehlercode "10061": Es konnte keine Verbindung hergestellt werden, da der Zielcomputer die Verbindung verweigerte.

Dieser Fehler tritt auf, wenn Sie die Clientanwendung ausführen, ohne zuvor den Dienst zu starten. Führen Sie zunächst die Hostanwendung aus, um den Dienst zu starten, und dann die Clientanwendung aus.

Verwenden des Tools „Svcutil.exe“

Svcutil wird nicht als interner oder externer Befehl, ausführbares Programm oder Batchdatei erkannt.

Svcutil.exe muss sich im Systempfad befinden. Die einfachste Lösung ist die Verwendung der Visual Studio-Eingabeaufforderung. Wählen Sie im Startmenü das Verzeichnis Visual Studio <Version> und anschließend Developer-Eingabeaufforderung für VS <Version> aus. Durch diese Eingabeaufforderung wird der Systempfad auf die ordnungsgemäßen Speicherorte für alle Tools im Lieferumfang von Visual Studio festgelegt.

Ausführen des Diensts und der Clientanwendungen

System.ServiceModel.Security.SecurityNegotiationException: Aushandlung der SOAP-Sicherheit für http://localhost:8000/GettingStarted/CalculatorService für Ziel http://localhost:8000/GettingStarted/CalculatorService fehlgeschlagen

Dieser Fehler tritt auf einem in die Domäne eingebundenen Computer ohne Netzwerkkonnektivität auf. Verbinden Sie den Computer entweder mit dem Netzwerk, oder deaktivieren Sie die Sicherheit für sowohl den Client als auch für den Dienst.

So deaktivieren Sie die Sicherheit

  • Ersetzen Sie für den Dienst den Code, der WSHttpBinding erstellt, durch den folgenden Code:

    // Step 3: Add a service endpoint.
    selfhost.AddServiceEndpoint(typeof(ICalculator), new WSHttpBinding(SecurityMode.None), "CalculatorService");  
    
  • Aktualisieren Sie für den Client in der Konfigurationsdatei das <security>-Element unter dem <binding>-Element wie folgt:

    <binding name="WSHttpBinding_ICalculator">
      <security mode="None" />
    </binding>
    

Siehe auch

Erste Schritte mit WCF-Anwendungen
Schnelleinstieg zur Problembehandlung in WCF
Behandeln von Setup-Problemen