WCF 调试的限制
可通过三种方式可以开始调试 WCF 服务:
您调试调用服务的客户端进程。 调试器单步执行服务。 服务不必是解决方案和您的客户端应用程序相同。
您调试发出请求传递给服务的客户端进程。 服务必须是您的解决方案的一部分。
使用 附加的进程 附加到当前正在运行的服务。 开始调试在服务中。
本主题介绍在这些方案的限制。
在步骤的限制到服务
若要单步执行从客户端应用程序中的服务正在调试,必须满足以下条件:
使用一个同步客户端对象,客户端必须调用服务。
协定操作不能是单向。
如果服务器是异步的,不能查看整个调用堆栈,当您对服务中的代码。
必须启用调试。在 app.config 或 Web.config 文件的以下代码:
<system.web> <compilation debug="true" /> </system.web>
此代码只能添加一次。 使用 附加的进程,可以将此代码通过编辑 .config 文件或通过附加到服务。 当您在服务中 附加的进程 ,调试代码会自动添加到 .config 文件。 之后,您可以调试和单步执行服务,而无需编辑 .config 文件。
在步骤的限制丢失功能
单步执行丢失功能和回客户端具有对单步执行述的相同限制为服务。 此外,必须将调试器附加到客户端。 如果调试客户端并单步执行服务,调试器仍附加到服务。 为 true 通过使用 附加的进程,是否已启动客户端使用 启动调试 或附加到客户端。 如果您开始调试通过附加到服务,未附加调试器到客户端。 在这种情况下,因此,如果必须单步执行丢失这种功能和返回给客户端,必须先使用 附加的进程 手动附加到客户端。
在自动的限制附加到服务
自动附加到服务具有以下限制:
服务必须是调试 Visual Studio 解决方案的一部分。
必须承载服务。 它可以是网站项目 (文件系统和 HTTP), Web 应用程序项目 (文件系统和 HTTP),或 WCF 服务的一部分库项目。 WCF 服务库项目可以是服务库或工作流服务库。
必须从 WCF 客户端调用服务。
必须启用调试。在 app.config 或 Web.config 文件的以下代码:
<system.web> <compilation debug="true" /> <system.web>
承载自
自承载的服务 不运行在 IIS、 WCF 服务主机或 ASP.NET 开发服务器中的 WCF 服务。 有关如何调试自承载的服务的信息,请参见 如何:调试自我托管的 WCF 服务。
承载自
ASP.NET 3.0 或 3.5,在安装之前,若要启用 ASP.NET 3.0 或 3.5 应用程序调试,必须安装 Visual Studio 2010 。 如果 Visual Studio 2010 在 ASP.NET 3.0 或 3.5 之前安装,错误,则会尝试调试 ASP.NET 3.0 或 3.5 应用程序时。 错误消息是, “无法自动单步执行服务器”。若要解决此问题,请使用 windows 控制面板, 程序和功能 修复您的 Visual Studio 2010 安装。