2017-04-01 31 views
1

我正在开发一个项目,我有两台服务器,一台登录服务器和一台服务于该应用程序的辅助服务器。辅助服务器是ASP.NET Core,但第一个是ASP.NET MVC,因为我无法使用Identity在Core中使用Angular2的令牌。在VS2015中,断点适用于MVC,但不适用于Core。我希望它能够解决问题,我希望能够到2017年。尽管我的A2项目有效,但方法正在被调用,但是根本没有任何断点。调试器说没有代码的调试信息。我已经进入项目设置并告诉它生成完整的pdb(在构建设置的底部,在'高级'下),我关闭了'只是我的代码'并打开了.NET代码中断。这些都是我可以在网上找到的所有建议。我的断点仍未被击中。调试在ASP.NET Core或VS2017中不起作用

+0

我发现非CORE一个,我的global.asax已被移动。我仍然无法在VS2015或VS2017中调试CORE项目。 – cgraus

+0

好的,如果我创建了一个新项目,它就会起作用(并不奇怪)。因此,我将从另一个项目中导入代码直到它破坏... – cgraus

+0

在我的情况中,我曾经将模式从'Debug'更改为'Release',但忘记将其更改回'Debug'。在'Release'模式下,正如人们所期望的那样,它当然不会触及'breakpoints'。 – nam

回答

11

这可能有助于某人。

当您在发布中调试时,中断点不会被打中。

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

+0

谢谢 - 这确实是默认释放,但我很早就检查过了。 :) – cgraus

+0

@PieterdeVries感谢您分享您的建议,因为它解决了我的问题。在将应用程序安装到生产环境时,我有'Release'模式,但忘记将模式更改回'Debug'。+1 – nam

+0

在上一个VS中,它在释放模式打开时工作。 – teapeng

0

OK,似乎我从一个地方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> 

说不上来是怎么来的,但如果我把它注释掉,调试工作...

0

尝试调试.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核心)。 注意:对于ASP.NET Core应用程序,以前的进程名称为dnx.exe。

单击附加。