【问题标题】:How to debug a web service in a C#/.NET solution from a web application如何从 Web 应用程序调试 C#/.NET 解决方案中的 Web 服务
【发布时间】:2014-09-19 12:11:48
【问题描述】:

我有一个应用程序解决方案,其中包含八个带有 Web 服务的 C#/.NET 项目。

其中一个项目是网络服务。

所有数据都是通过 Windows 窗体应用程序中的 Web 服务获取的。

但在调试我的 Windows 应用程序时,我无法调试用于在 Visual Studio 2010 中获取数据的 Web 服务。

当触发数据获取事件时,如何在解决方案中调试 Web 服务项目?

【问题讨论】:

    标签: c# .net web-services visual-studio-2010 visual-studio-debugging


    【解决方案1】:

    您可以附加到您的网络服务的进程。在 Visual Studio 中,单击菜单调试附加到进程

    【讨论】:

      【解决方案2】:

      您可以通过将 VS 调试器附加到进程来调试 web service,如下所示:

      Debug > Attach to Process > Attach
      

      您可以浏览您正在寻找的可用服务并附上。

      【讨论】:

        【解决方案3】:

        您应该将 Visual Studio 附加到 Web 服务的宿主进程。

        此进程通常是 IIS 工作进程,名称为 w3wp.exe on IIS 6+ on Windows Server 2003, Vista, later。

        要附加到此过程,您可以在 Visual Studio 中使用Debug -> Attach to Process。在Attach to process 对话框内确保您已检查Show processes from all users,并且在选择您的进程时,请确保选择Managed code。要选择托管代码,请单击 Select... 并选中 Managed Code 复选框(V2.0 或 V4.5、4.0 取决于您选择的框架)

        【讨论】:

          【解决方案4】:

          通常,在 Visual Studio 中调试时,选定的启动项目将在调试模式下执行。在您的情况下,您需要启动和调试 Web API 项目以及 WinForms 项目。您可以通过右键单击解决方案资源管理器并选择 Set StartUp Projects 来实现。将打开一个对话框,您可以在其中选择多个启动项目,然后在调试解决方案时选择要启动的项目。

          另一种选择是拥有一个 StartUp 项目(Web API 项目,因为这是其他项目运行的要求)。然后,您可以在解决方案资源管理器中右键单击 WinForms 项目并选择 Debug -> Start new instance。您可以多次执行此操作以调试同一项目的多个实例。

          显然,您始终可以将调试器附加到任何正在运行的进程,如果您的 Web API 是使用 IIS 部署的,那么它已经在运行。使用上面概述的过程,Visual Studio 将附加到正确的工作进程。

          【讨论】:

          • 不敢相信 4 个答案中有 3 个建议附加该过程而不是使用多个启动项目...这也可以,但如果您必须进行大量调试会很痛苦..跨度>
          【解决方案5】:

          本文是2019年的,解决办法是附加到IISExpress。调试 -> 附加 -> 在列表中找到 iisExpress(不是托盘),.

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-08-25
            • 2013-08-09
            • 1970-01-01
            • 2014-02-16
            • 1970-01-01
            • 2013-11-19
            • 2013-10-16
            • 1970-01-01
            相关资源
            最近更新 更多