【问题标题】:VS 2015 / WebAPI Fiddler 200--Code Executes--Solid Breakpoint not hitVS 2015 / WebAPI Fiddler 200--代码执行--未命中实体断点
【发布时间】:2016-02-09 00:49:05
【问题描述】:

今天早上我有一个奇怪的。我已经清理和重建了无数次,并关闭并重新打开了 VS 2015。我有纯红色断点并且代码执行,其他带有断点的控制器被击中?我不明白我在这里缺少什么。

通常我有一个包含三个项目的解决方案。

  1. 网页接口
  2. EF 回购
  3. MVC

MVC 项目中的断点被击中就好了。 API 控制器中的代码执行得很好,只是没有中断? Fiddler 报告 200,我可以重新发出命令并获得 200,但从未达到断点?

它是一个多部分 MIME,mvc 项目有它自己的端口 localhost:50009 而 api 是 localhost:50109 但我认为这不重要????

重要的路径是api/Upload/AttyUpload

[HttpPost]
[AllowAnonymous]
public async Task<HttpResponseMessage> AttyUpload()
{ ... }


<form action="http://localhost:50109/api/Upload/AttyUpload" method="post" enctype="multipart\form-data">....</form>

编辑

根据 Batuta 的评论,我设置了两个断点。 MVC startup.cs 中的第一个,api global.asax 中的第二个。

启动断点已命中,但 global.asax 未命中。好的,所以我正在运行 api 的编译版本,因此我的断点没有被命中?

【问题讨论】:

  • 您能否尝试查看是否可以在 Startup.cs 文件中添加断点并查看它是否被命中,甚至在它命中您的 Web api 控制器之前?
  • 我按照你的建议做了,结果表明我的 api 出了点问题......请参阅 OP 编辑​​。
  • 如果我没记错的话,很多时候应用程序启动中的断点不会被命中,因为代码在 Visual Studio 甚至有机会附加调试器之前运行。
  • 要在某些 global.asax.cs 方法中打断点,您需要在设置调试器后回收应用程序池。最简单的方法是重新保存 web.config 文件。也可以在 IIS 控制台中通过右键单击应用程序池来完成。之后,只需在浏览器中重新加载网站页面。

标签: c# asp.net-web-api


【解决方案1】:

对我来说很奇怪,因为我原以为它会自行启动,但由于某种原因它不是。我转到解决方案属性并设置多个启动项目,同时选择 MVC 应用程序和 API 来启动。一旦我这样做了,我就开始在 API 中设置断点了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-01
    • 2019-10-09
    • 2017-12-08
    • 2011-08-28
    相关资源
    最近更新 更多