【问题标题】:Debug WCF service hosted in local IIS not working调试本地 IIS 中托管的 WCF 服务不起作用
【发布时间】:2011-04-22 00:32:19
【问题描述】:

我有一个解决方案 WCFSampleSolution,它包含我的所有项目 - Web 服务、客户端和网站。结构类似于:

  • WCFSampleSolution
    • C:\WCFSample\网站
    • WCFService
    • WCFWebClient

我为我的服务创建了 WCFService 项目。它包含 IService1.cs 和 Service1.cs。然后我将服务托管在 IIS 中。我通过创建一个网站并将 .svc 和 web.config 文件添加到网站项目来做到这一点。然后在 IIS 中发布它。当我运行 http:\MyMachineName\Website\Service.svc 时,它会显示服务描述。然后我创建调用 Web 服务的 Web 客户端。我使用服务引用来添加服务。它调用Service1 的方法。它工作正常。但我无法调试此程序/设置。我验证了 WCFWebClient 项目和网站项目中的配置文件,它们具有正确的调试设置。

<compilation debug="true">

我设置了断点,但控制权从未转到我的 seb 服务。我也尝试了附加过程,但它也不起作用。但我能够调试我的其他 WCF 项目之一。设置略有不同。在那个项目中,我在我的 Web 客户端中复制了 .svc 文件和配置,并且调试工作正常。

请帮忙!!

【问题讨论】:

    标签: wcf web-services debugging


    【解决方案1】:

    您在 IIS 上托管您的服务,所以我确信您必须附加到 w3wp.exe 进程。尝试附加时,如果 VS 内置 Web 服务器正在启动,则也附加到该进程。

    【讨论】:

    • Pradeep,非常感谢您的回复。我不确定如何附加到 w3wp?我所做的是,打开VS 2008,然后工具-> 附加到进程并选择aspnet_wp.exe。我确定我做的不对,因为在我附加后我无法在 VS 上做任何事情。你能指导我怎么做吗?还有最后一行是什么意思?
    • aspnet_wp.exe 是正确的附加进程。我猜你是在 Windows XP 机器上。你正在采取正确的步骤。我已经看到即使服务托管在 IIS 中,VS 也会在构建的 Web 服务器“WebDev.WebServer40.exe”上启动它的行为(我在 VS 2010 中看到了这个名称)。您还需要在 aspnet_wp.exe 旁边附加到它。您能否也分享您的代码库,以便我也可以看看。
    • 感谢 Pradeep,我无法调试。我在这里缺少的是,我需要为调试执行的步骤:我将把它放在这里供其他人使用: 1. 在调用 Web 服务方法之前在客户端以及服务方法中放置断点(重要)。 2. 运行应用程序。 3. 当控制在客户端断点上时,打开Debug->Attach to Process 并选择aspnet_wp.exe。 4. 现在开始调试。瞧!!!
    • 我使用的是 Windows 7,我只有 5 个 w3wp.exe。如果我将它附加到任何一个 .. 那么它会工作吗? @Pradeep
    【解决方案2】:

    @user465876 - 可以在这里找到另一种不那么麻烦的方法:WCF can no longer step into a service that's locally hosted -- why not?

    【讨论】:

      【解决方案3】:

      我发现特别容易的是打开两个 Visual Studio 实例(特别是如果您使用 NUnit 或做任何事情来测试代码)。一个将附加 NUnit 或任何您想要的,另一个将附加 w3wp.exe 进程。最简单的方法是:

      1) 在代码的第一个 Visual Studio 实例中放置一个断点,然后它会命中您机器上托管的 WCF 服务。

      2) 代码在断点处停止后,在要中断的第二个 Visual Studio 实例中设置断点,然后附加 w3wp.exe 进程。

      3) 继续后,服务代码上的断点应该会被命中。

      在附加 w3wp.exe 时,有时也更容易找到进程 ID。使用 IIS,您可以转到“工作进程”并找到要为您的应用程序池名称附加的进程 ID。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-05
        • 1970-01-01
        • 2022-12-13
        • 2013-03-10
        • 1970-01-01
        相关资源
        最近更新 更多