如何在另一个解决方案中从MVC项目调试Web API项目

时间:2019-08-02 11:33:18

标签: api debugging asp.net-web-api

我有一个MVC项目解决方案和一个单独的API项目解决方案(因为它由其他不同的解决方案使用)。

调试期间是否可以在调试时访问API解决方案代码?

两个解决方案显然都在运行,可以提供正确的数据和结果,问题是我在调试期间无法访问API项目代码-调试器跳过了API,仅访问了主要解决方案。

编辑 我意识到该API是一个单独的程序包,并且在主解决方案中被作为程序集引用,因此我不确定是否有可能完全达到断点?不能通过Ajax使用。

2 个答案:

答案 0 :(得分:2)

是的,有可能。

只需在Visual Studio中打开两个解决方案即可。生成API项目并将其dll添加到MVC项目。将断点放在您的API上并运行API项目。现在运行您的MVC项目。从您的MVC项目中点击该API,断点一定会进入该API。

答案 1 :(得分:0)

是的,有可能。

假设您使用的是Visual Studio,请启动另一个实例,并将其附加到API的运行过程中。在您的API中放置一个断点,然后在MVC端执行任何操作,以达到API中的正确端点。执行将停止,您现在也可以在第二个项目中进行调试。

这一切都取决于您如何运行API,甚至可以使用IIS Express从Visual Studio运行API,在这种情况下,您的URL例如看起来像http:\\localhost\api\sbla\bla:50310

当API在适当的IIS中的Visual Studio外部运行时,附加效果很好。 确保选中“显示所有进程”框,然后寻找一个名为w3wp的进程,我认为这全部来自内存。

您无法从MVC项目中调试API,因为它们都在不同的进程中运行

------在附加信息之后添加了----

如果API内容位于dll中,请确保该dll是在调试模式下构建的,然后您可以进入该程序。在您有一个进入dll的调用之前,在MVC代码中放置一个断点,然后进入其中并通过正常调试从那里继续

相关问题