debugging 调试在ASP.NET核心或VS2017中根本不起作用

kiz8lqtg  于 2023-02-19  发布在  .NET
关注(0)|答案(9)|浏览(131)

我正在处理一个项目,我有两个服务器,一个是登录服务器,另一个是为应用程序服务的辅助服务器。
第二个服务器是ASP.NET Core,但第一个服务器只是ASP.NET MVC,因为我无法让Identity在ASP.NET Core中与Angular 2的令牌一起工作。在Visual Studio 2015中,断点在ASP.NET MVC中工作,但在ASP.NET Core中不工作。
我转移到Visual Studio 2017是希望它能修复一些问题。根本没有断点被击中,虽然我的A2项目可以工作,但方法正在被调用。
调试器说没有代码的调试信息。我已经进入项目设置并告诉它生成完整的pdb(在构建设置的底部,在“高级”下),我已经关闭了“仅我的代码”并打开了.NET代码中断。这些都是我可以在网上找到的建议。我的断点仍然没有被命中。

wvt8vs2t

wvt8vs2t1#

这也许能帮上忙。
当您在发行版中侦错时,将不会命中中断点。
确保在按F5键或运行时选择debug。

cnwbcb6i

cnwbcb6i2#

当尝试调试一个.NET核心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核心应用程序,以前的进程名称为dnx.exe。*
单击附加。

i1icjdpr

i1icjdpr3#

只需将解决方案配置更改为 * 调试 * 模式。
您可以在随附的图像中看到它:

voj3qocg

voj3qocg4#

1.退出Visual Studio
1.右键单击Visual Studio的快捷方式
1.选择-打开文件位置
1.右键单击Visual Studio 2017文件,选择“属性
1.单击高级。
1.以管理员身份运行--〉X ==启用
1.申请好吧好吧...

xeufq47z

xeufq47z5#

以下内容对我很有效(Visual Studio 2017):
1.打开项目属性
1.打开 * 构建 * 选项卡

  1. Click on Advanced...
  2. Set Debugging information to FULL
    1.清理并重建
at0kjp5o

at0kjp5o6#

因为我正在做一个API项目,所以我取消了项目属性中的“启动浏览器”。只有当我再次勾选这个选项时,断点才起作用。

wmtdaxz3

wmtdaxz37#

好的,我好像从某个地方得到了一个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>

我不知道它是怎么到这里的,但是如果我注解掉它,调试工作...

icomxhvb

icomxhvb8#

在我的例子中,文件launchSettings.json中的"launchBrowser": true,被意外删除,我把它放回去,断点被击中。

voj3qocg

voj3qocg9#

对我来说,这是一个IIS Express问题

在此处检查可能的修复程序:
Unable to launch the IIS Express Web server

相关问题