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 安装。

请参见

任务

如何:调试自我托管的 WCF 服务

其他资源

调试 WCF 服务