【问题标题】:Debugging not working in ASP.NET Core, or in VS2017 at all调试在 ASP.NET Core 或 VS2017 中根本不起作用
【发布时间】:2017-04-01 03:40:48
【问题描述】:

我正在处理一个项目,我有两台服务器,一台登录服务器和一台为应用程序服务的辅助服务器。

辅助服务器是 ASP.NET Core,但第一个服务器只是 ASP.NET MVC,因为我无法在 ASP.NET Core 中让 Identity 与 Angular 2 的令牌一起使用。在 Visual Studio 2015 中,断点适用于 ASP.NET MVC,但不适用于 ASP.NET Core。

我迁移到 Visual Studio 2017,希望它能解决问题。根本没有遇到断点,虽然我的 A2 项目可以工作,但正在调用方法。

调试器说没有代码的调试信息。我已经进入项目设置并告诉它生成完整的 pdb(在构建设置的底部,在“高级”下),我已经关闭了“只是我的代码”并打开了 .NET 代码中断。这些都是我在网上能找到的建议。我的断点仍未命中。

【问题讨论】:

  • 我找到了非 CORE 的,我的 global.asax 已被移动。在VS2015或VS2017中还是无法调试CORE项目
  • 好的,如果我创建一个新项目,它就可以工作(不足为奇)。所以我会将另一个项目的代码导入到这个项目中,直到它中断......
  • 就我而言,我曾经将模式从Debug 更改为Release,但忘记将其更改回Debug。在Release 模式下,正如人们所预料的那样,它当然不会命中breakpoints

标签: debugging asp.net-core visual-studio-2017


【解决方案1】:

这可能对某人有所帮助。

在发布调试时,不会命中断点。

确保您在按 F5 或运行时选择调试。

【讨论】:

  • 谢谢 - 它确实默认为发布,但我很早就检查了。 :)
  • @PieterdeVries 感谢您分享您的建议,因为它解决了我的问题。我在将应用程序安装到生产环境时打开了Release 模式,但忘记将模式改回Debug。 +1
【解决方案2】:

尝试调试 .NET Core Web 应用程序时,请确保您已附加到正确的进程。当我附加到w3wp.exe 进程时,我遇到了与 OP 描述的相同的问题。

当我附加到dotnet.exe 进程时,我能够按预期中断。

仅供参考,这是在 .NET Core 2.0 Web 应用程序上。

以下链接是关于使用 .NET Core 进行远程调试的,但其中部分内容仍然适用。

Remote Debug ASP.NET Core on a Remote IIS Computer in Visual Studio 2017

链接摘录:

键入进程名称的第一个字母以快速找到 dotnet.exe(适用于 ASP.NET Core)。 注意:对于 ASP.NET Core 应用,之前的进程名称是 dnx.exe。

点击附加。

【讨论】:

  • 谢谢你!!!我在没有调试器的情况下被困了 2 天!我尝试了所有方法,但在找到这个之前似乎没有任何效果。
  • 你是救世主。我整天都在尝试w3wp.exe
【解决方案3】:

只需将解决方案配置更改为调试模式。

您可以在附图中看到它:

【讨论】:

    【解决方案4】:
    1. 退出 Visual Studio
    2. 右键单击 Visual Studio 的快捷方式
    3. 选择 - 打开文件位置
    4. 右键单击 Visual Studio 2017 文件,选择属性
    5. 点击高级。
    6. 以管理员身份运行 --> X == 开启
    7. 申请。好的。好吧……呜呜呜

    【讨论】:

    • 这个问题从来没有标记过答案。我遇到了类似的问题,IE 根本不会加载默认的 MVC 项目,而您的解决方案就是我的答案。非常感谢;节省了我很多时间。现在,如果您不介意,为什么需要这样做?我以前从来没有这样做过。刚开始用VS2017,所以肯定和这次IDE升级有关。
    【解决方案5】:

    以下内容对我有用 (Visual Studio 2017):

    1. 打开项目属性
    2. 打开构建标签
    3. Click on Advanced...
    4. Set Debugging information to FULL
    5. 清理并重建

    【讨论】:

    • 工作解决方案!谢谢,奥拉沃!我为“调试信息”选择了“便携式”选项
    【解决方案6】:

    在处理 API 项目时,我在项目属性中取消了“启动浏览器”的勾选。断点只有在我再次勾选时才起作用。

    【讨论】:

      【解决方案7】:

      好的,我好像从某个地方得到了一个 web.config 文件,如下所示:

         <system.webServer>
          <handlers>
            <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/>
          </handlers>
          <aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>
        </system.webServer>
      

      我不知道它是怎么到这里来的,但是如果我把它注释掉,调试就可以了……

      【讨论】:

        猜你喜欢
        • 2018-08-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-27
        • 2021-06-16
        • 2018-12-20
        • 2019-12-01
        相关资源
        最近更新 更多