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



问题

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

现在控制台应用程序使用WebClient类与我在解决方案中拥有的Web API项目进行通信。当我运行其中一个控制台应用程序时,Web API将自动在VS ASP.NET WebDev服务器(在Localhost中)中运行。这很好。当我在Web API解决方案(比如一个控制器)中设置断点时,它们在调试过程中不会被击中。只有控制台断点被命中。现在,如果我直接运行Web API解决方案,并使用RESTEasyFF插件来构建请求,那么断点就会被命中。

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

我使用的技术

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

我可以想出几种方法来解决您的问题:

  1. 从解决方案A显式加载符号:转到工具->选项>调试->符号您可以将其指向解决方案A中的.pdb文件。然后,您可以在调试时转到Debug->Windows>模块,查看符号是否从二进制文件中加载
  2. 禁用名为"仅我的代码"的调试功能。这是一个旨在最大限度地减少解决方案中代码的调试体验的功能。要禁用它:

工具->选项->调试

未选中"仅启用我的代码"

  1. 最后一种选择是使用我在另一个问题中找到的解决方案,有人发布了:

以下是我所做的。

假设解决方案a中的项目指的是解决方案B和I中的项目希望从解决方案A项目调试到解决方案B项目。

在Visual Studio中打开解决方案B。将项目属性设置为"使用本地IIS Wb服务器",设置项目Url并创建虚拟目录

在另一个Visual Studio实例中打开解决方案A。设置项目属性设置为"使用本地IIS Wb服务器"并选中"使用IIS Express",设置项目Url并创建虚拟目录。

按F5并开始调试Visual Studio的解决方案B实例。然后按F5并开始调试Visual的Solution A实例演播室现在,Visual Studio的两个实例都将处于调试模式。现在从解决方案A开始,您应该能够调试到解决方案B就像两个项目都在同一个解决方案中一样。

这里的关键是"使用IIS express"one_answers"本地IIS Web"服务器"。这将使您有两个调试器立即运行。

来源:https://stackoverflow.com/a/25630033/3125120

我希望它能有所帮助。

最新更新