无法调试客户端 blazor

Cannot debug client side blazor

好吧,太简单了,我似乎无法调试客户端 blazor。

我已经添加了

"inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}"

这里建议Blazor WebAssembly 3.2.0 Preview 3 release now available

我已经在 IIS Express 和 kestrel 上尝试过 F5。

我了解到您需要启用脚本调试。我打开它,现在当我按 F5 键时,我的浏览器尝试转到

file:///C:/%5CProgramData%5CMicrosoft%5CVisualStudio%5CEdgeAdapter%5C8d1196ff/landingPage.html

我可以确认我在服务器 -> startup.cs env.IsDevelopment

下有以下内容
app.UseWebAssemblyDebugging();

尝试了 Alt+Shift+D,然后是 Win+R,最后在新浏览器中 window,再次是 Alt+Shift+D。这似乎只对服务器端有利,无论如何它都在工作。

尝试了这里的各种建议Unable to debug Blazor hosted WebAssembly 3.2.0 from Visual Studio 2019 16.6.2

Visaul Studio 版本:16.7.2
.NetCore 3.1.401
Edge(铬)版本 84.0.522.63

我知道有几个地方有人说他们的断点被忽略了。不确定它们的意思是否与此相同,但对我来说,Visual Studio 表示在调试时断点永远不会被击中并且没有加载任何符号。

更新 1:
出于好奇,我创建了一个全新的项目。
Visual Studio -> Blazor 应用程序 -> Blazor WebAssembly 应用程序
配置 HTTPS 未勾选 ASP.NET 核心托管勾选

在客户端项目的 Counter.Razor 上的 IncrementCount() 处放置一个断点。
F5 和同样的问题。

更新 2:
因此,只需添加更多信息即可。 我安装了 Visual Studio 代码。然后我在命令行中创建了一个托管项目。打开项目,把断点放在上面提到的 UPDATE1 的同一个地方,然后按 F5。断点有效!

然后,我在 Visaul Studio Code 中打开更新 1 中提到的项目并进行了尝试。当我按下 F5 时,我得到一个空白的浏览器,片刻之后,我得到了这个。

如果,在visual studio,我然后打开我用命令行创建的项目。按F5还是不允许断点

所以这看起来像是 Visaul Studio 的问题。

类似的问题在documentation page for blazor debugging.

上也有描述

虽然使用的示例是针对 OnInitialized 方法的,但我发现当调试器似乎没有被触发时,它也适用于其他方法。

只需在方法的开头添加 Thread.Sleep(10000)await Task.Delay(10000),然后重试。

看起来 visual studio 的修复安装解决了问题。 我注意到 Visaul Studio 代码没有问题,并且在调试时,它总是会启动一个新的浏览器 window。
Visaul Studio 总是在我现有的浏览器上启动一个新选项卡 windows。

修复后,visual studio开始启动新浏览器window。不确定这对任何人是否意味着什么。

app.UseWebAssemblyDebugging() 在服务器应用程序 Startup.cs 中站在 app.UseHttpsRedirection() 之后时,可能会发生这种情况。因此调试文件在没有 https 的情况下不可用。