Einschränkungen beim WCF-Debugging
Dieses Thema gilt für folgende Anwendungsbereiche:
Edition |
Visual Basic |
C# |
F# |
C++ |
Web Developer |
---|---|---|---|---|---|
Express |
|||||
Pro, Premium und Ultimate |
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 angerufen 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 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 beim Ausführen von Einzelschritten in einen Dienst
Folgende Bedingungen müssen erfüllt sein, damit Sie von den gedebuggten 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 der Server asynchron ist, 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 von 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 der CONFIG-Datei automatisch 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 an den 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 Anhängen an einen Dienst
Das automatische Anhängen 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), Webanwendungsprojekts (Dateisystem und HTTP) oder 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. 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 installiert werden, bevor Visual Studio 2010 installiert wird. Wenn Visual Studio 2010 vor ASP.NET 3.0 oder 3.5 vor 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