Freigeben über


Einschränkungen beim WCF-Debugging

Die folgenden drei Möglichkeiten stehen Ihnen zur Verfügung, um das Debuggen eines WCF-Diensts zu starten:

  • Sie debuggen einen Clientprozess, durch den ein Dienst aufgerufen wird. Der Debugger führt einen Einzelschritt in den Dienst aus. Der Dienst muss sich nicht in derselben Projektmappe wie die Clientanwendung befinden.

  • Sie debuggen einen Clientprozess, der eine Anforderung an einen Dienst sendet. Der Dienst muss Teil der Projektmappe sein.

  • Sie verwenden die Option An den Prozess anhängen, um den Debugger an einen gerade ausgeführten Dienst anzuhängen. Das Debuggen wird im Dienst gestartet.

In diesem Thema werden Einschränkungen dieser Szenarien beschrieben.

Einschränkungen bei der schrittweisen Verwendung eines Diensts

Folgende Bedingungen müssen erfüllt sein, damit Sie von den debuggten Clientanwendungen einen Einzelschritt in einen Dienst ausführen können:

  • Der Client muss den Dienst aufrufen, indem er ein synchrones Clientobjekt verwendet.

  • Die Vertragsoperation darf nicht unidirektional sein.

  • Wenn es sich um einen asynchronen Server handelt, können Sie nicht die vollständige Aufrufliste anzeigen, während der Code innerhalb des Diensts ausgeführt wird.

  • Das Debuggen muss mithilfe des folgenden Codes in der Datei "app.config" oder "Web.config" aktiviert werden:

    <system.web>
      <compilation debug="true" />
    </system.web>
    

    Dieser Code muss nur einmal hinzugefügt werden. Sie können diesen Code hinzufügen, indem Sie die CONFIG-Datei bearbeiten oder den Debugger mithilfe der Option An den Prozess anhängen an den Dienst anhängen. Wenn Sie An den Prozess anhängen für einen Dienst verwenden, wird der Debugcode automatisch der CONFIG-Datei hinzugefügt. Anschließend können Sie das Debuggen starten und einen Einzelschritt in den Dienst ausführen, ohne die CONFIG-Datei bearbeiten zu müssen.

Einschränkungen beim Ausführen bis Rücksprung in einem Dienst

Das Ausführen bis Rücksprung in einem Dienst und zurück zum Client unterliegt denselben Einschränkungen wie das Ausführen von Einzelschritten in einen Dienst. Außerdem muss der Debugger an den Client angehängt werden. Wenn Sie einen Client debuggen und einen Einzelschritt in einen Dienst ausführen, bleibt der Debugger am Dienst angehängt. Dies gilt unabhängig davon, ob Sie den Client über Debuggen starten gestartet oder den Debugger über An den Prozess anhängen an den Client angehängt haben. Falls Sie das Debuggen durch Anhängen an den Dienst gestartet haben, wurde der Debugger bis jetzt noch nicht an den Client angehängt. Wenn Sie die Ausführung bis Rücksprung im Dienst und zurück zum Client vornehmen, müssen Sie in diesem Fall zuerst An den Prozess anhängen verwenden, um den Debugger manuell an den Client anzuhängen.

Einschränkungen beim automatischen Anfügen an einen Dienst

Das automatische Anfügen an einen Dienst unterliegt folgenden Einschränkungen:

  • Der Dienst muss Teil der Visual Studio-Projektmappe sein, die Sie debuggen.

  • Der Dienst muss gehostet werden. Er kann Teil eines Websiteprojekts (Dateisystem und HTTP), eines Webanwendungsprojekts (Dateisystem und HTTP) oder eines WCF-Dienstbibliotheksprojekts sein. WCF-Dienstbibliotheksprojekte können entweder Dienstbibliotheken oder Workflowdienstbibliotheken sein.

  • Der Dienst muss über einen WCF-Client aufgerufen werden.

  • Das Debuggen muss mithilfe des folgenden Codes in der Datei "app.config" oder "Web.config" aktiviert werden:

    <system.web>
      <compilation debug="true" />
    <system.web>
    

Lokales Hosten

Ein lokal gehosteter Dienst ist ein WCF-Dienst, der nicht innerhalb von IIS, WCF-Diensthost oder ASP.NET Development Server ausgeführt wird. Weitere Informationen zum Debuggen eines lokal gehosteten Diensts finden Sie unter Gewusst wie: Debuggen eines lokal gehosteten WCF-Diensts.

Lokales Hosten

Um das Debuggen von ASP.NET 3.0- oder 3.5-Anwendungen zu aktivieren, muss ASP.NET 3.0 oder 3.5 vor der Installation von Visual Studio 2010 installiert werden. Wenn Visual Studio 2010 vor ASP.NET 3.0 oder 3.5 installiert wird, tritt ein Fehler auf, wenn Sie versuchen, eine ASP.NET 3.0- oder 3.5-Anwendung zu debuggen. Die Fehlermeldung lautet: "Automatischer Einzelschritt auf dem Server nicht möglich." Verwenden Sie zum Beheben dieses Problems Systemsteuerung, Programme und Funktionen, um die Visual Studio 2010-Installation zu reparieren.

Siehe auch

Aufgaben

Gewusst wie: Debuggen eines lokal gehosteten WCF-Diensts

Weitere Ressourcen

Debuggen von WCF-Diensten