无法在完整的.net框架上调试IIS部署的ASP.NET Core MVC

时间:2017-08-18 20:53:16

标签: visual-studio debugging iis asp.net-core-mvc

我已经停留了一个多小时,已经尝试调试我的ASP.NET Core MVC应用程序。它使用的是完整的.Net Framework 4.6.1

使用IIS Express进行调试就像魅力一样,但在将项目部署到IIS时,我将Visual Studio Debugger附加到“w3wp”进程,它会附加但我仍然看到由于缺少符号而导致我的断点未启用。

我已经尝试了很多附加调试器的组合,更新了Visual Studio(我使用VS 2017),但都没有运气。

我已经尝试过stackoverflow和MS文档,但没有用于调试ASP.NET核心目标的完整.NEt框架。

最糟糕的是几周前我遇到过类似的问题,但没有记录它是如何解决的。

对我做错了什么的想法?

更新:在Windows Server 2012 R2上发生问题,但在Windows 10上调试按预期工作。

1 个答案:

答案 0 :(得分:6)

好的,我想我明白发生了什么。

首先,根本原因:

  1. 我最初没有调试正确的过程。这通常不是w3wp,而是我项目的名称(如“MyAspNetCoreApp”)。
  2. 在使用调试设置进行编辑时,我禁用了“启用编辑并继续”设置并启用了“使用托管兼容模式”。它显然使事情变得更糟。
  3. 嗯...

    现在,有助于解决问题的故障排除:

    • 我最终试图在Windows Server上远程调试我的应用程序。使用this MS article帮助我为Visual Studio(2017)设置远程调试。
    • 然后我成功附加到Windows Server上的进程(我的VS在Windows 10上)
    • 这暗示这个问题很可能与VS有关,因为远程调试工作正常。
    • 此时我继续检查两个Visual Studios中的调试设置,一个在Windows Server上,另一个在Windows 10上。
    • 这是我注意到差异的时候,在Windows Server的VS上改了它,它运行了!!!

    令人困惑的是,微软的文档总是使用w3wp和现在的dotnet进程作为附加的。

    不要误解我的意思,通过程序集名称附加到进程的能力非常棒,我只希望它能清楚地反映在文档中。希望很快人们会赶上:)