调试控制台应用程序和 Web API 应用程序来自 Visual Studio 2010

Debugging Console App and Web API App from Visual Studio 2010

问题

我有一个 Visual Studio 2010 解决方案,其中包含各种 class library 个项目、1 个 ASP.NET Web API 项目和 2 个 Console Application 项目。

现在,控制台应用程序使用 WebClient class 与解决方案中的 Web API 项目进行通信。当我 运行 控制台应用程序之一时,Web API 在 VS ASP.NET WebDev 服务器(在 Localhost 内)内自动 运行。这可以。当我在 Web API 解决方案(比如其中一个控制器)中设置断点时,它们在调试期间不会被命中。仅命中控制台断点。现在,如果我直接 运行 Web API 解决方案,并使用类似 REST Easy FF 插件的东西来构建请求,断点就会命中。

Visual Studio 2010 中是否有选项可以在调试时同时跨两个不同的应用程序?

我正在使用的技术

  1. Visual Studio 2010 SP1
  2. 控制台应用程序是 .NET 4.0 项目
  3. Web API 项目是第一个版本

我能想到几种方法来解决你的问题:

  1. 显式加载解决方案 A 中的符号: 转到工具->选项->调试->符号 您可以将其指向解决方案 A 中的 .pdb 文件。 然后你可以通过转到 Debug->Windows-> 查看符号是否从你的二进制文件加载调试时模块
  2. 禁用名为 "Just My Code" 的调试功能。这是一项旨在将调试体验降至最低的功能,仅针对解决方案中的代码。为了禁用它:

工具 -> 选项 -> 调试

未勾选"Enable Just My Code"

  1. 最后一个选项是使用我在其他人发布的另一个问题中找到的解决方案:

Here is what I did.

Say a project from solution A refers a project from Solution B and I want to debug into solution B project from Solution A project.

Open Solution B in Visual Studio. Set the project properties to "Use Local IIS Wb Server", set the project Url and create Virtual Directory.

Open Solution A in another Visual Studio Instance. Set the project properties to "Use Local IIS Wb Server" and Check "Use IIS Express", set the project Url and create Virtual Directory.

Press F5 and start debugging Solution B instance of Visual Studio. Then Press F5 and start debugging Solution A instance of Visual Studio. Now both the instances of Visual Studio will be in debug mode. Start from Solution A now and you should be able to debug into Solution B just like if both projects were in the same solution.

The key here is to "Use IIS express" for one and "Local IIS Web server" for the other project. This will let you have two debuggers running at once.

来源:

希望对您有所帮助。