无法从 Visual Studio 2019 16.6.2 调试 Blazor 托管的 webassembly 3.2.0

Ser*_*eit 16 visual-studio-debugging blazor visual-studio-2019 blazor-client-side blazor-webassembly

我安装了 Visual Studio 2019 16.6.2,以及 .NET Core 3.1.301 SDK 和所有必要的 Blazor 模板。

如果我创建了一个全新的 Blazor WebAssmbly 应用程序,我可以通过按Ctrl+从 Visual Studio 运行它F5,它会在我的活动浏览器窗口中打开一个新选项卡并正常启动。

但是当我按下 时F5,会打开一个新的、单独的浏览器窗口(这有点烦人),但页面会停留about:blank一段时间,直到 Visual Studio 中出现错误消息:

Failed to launch debug adapter.  Additional information may be available in the output window.

Unable to launch browser: 
"Could not open wss://localhost:5001/_framework/debug/ws-proxy?browser=wsAFFlocalhostA50821FdevtoolsFbrowserFceed3b95-58ac-470a-b10c-5d139cfd7117": timeout after 60000ms
Run Code Online (Sandbox Code Playgroud)

Blazor WebAssembly 应用程序是否“托管”并没有什么区别。

我已按照在 ASP.NET Core 中执行 HTTPS 中的步骤进行操作,但这并没有什么区别。

如果在等待about:blank窗口崩溃时,我在浏览器选项卡上手动打开客户端 url,应用程序将加载并命中调试器断点。在短短的一段时间之前,它不断的崩溃,如果我打Shift+ Alt+D总是得到以下错误:

Unable to find debuggable browser tab
Could not get a list of browser tabs from http://127.0.0.1:9222/json. Ensure your browser is running with debugging enabled.

Resolution

If you are using Microsoft Edge (80+) for your development, follow these instructions:
Press Win+R and enter the following:

msedge --remote-debugging-port=9222 --user-data-dir="C:\Users\sergi\AppData\Local\Temp\blazor-edge-debug" --no-first-run https://localhost:44372/
Run Code Online (Sandbox Code Playgroud)

无论我运行命令的频率如何(关闭所有浏览器实例,重新启动等),我每次都会得到这个。

这发生在 Edge 84 (Edgium) 和 Chrome 中。

我应该能够创建一个新的 Blazor WebAssembly 应用程序并立即F5使用 Visual Studio。我错过了什么?

更新

我刚刚尝试使用“旧 Edge”(EdgeHtml)和 Firefox 作为 Visual Studio 中的调试浏览器,并且两者都按预期工作(意味着应用程序至少在按下时启动F5)。问题似乎是基于 Chromium 的浏览器,然后......

更新 2

@JamesHancock 在评论中发布了一个足够简单的解决方法。为了获得完整的解决方案(和解释),我已经记录了ASP.NET Core 团队的 Github 问题

kri*_*r_o 9

有一个加载得非常好的项目。将其放置了几周,当我今晚再次打开它时,我遇到了这个问题。

在 launchsettings.json 中,我有这个(项目模板中的所有默认值,我没有更改任何内容)

 "IIS Express": {
  "commandName": "IISExpress",
  "launchBrowser": true,
  "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}",
  "environmentVariables": {
    "ASPNETCORE_ENVIRONMENT": "Development"
  }
},
Run Code Online (Sandbox Code Playgroud)

我删除了这一行

  "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}",
Run Code Online (Sandbox Code Playgroud)

按F5,成功了!

然后我再次插入它,它仍然有效。


小智 6

对我来说,我app.UseWebAssemblyDebugging();Startup.Configure(). 希望这可以帮助某人。


Jam*_*ock 5

问题似乎在于,如果您从项目的 launchSettings.json 文件中删除 IIS Express 部分,则该调试将无法工作。即使您在没有 IIS 代理或 VS.net 的情况下直接对项目使用 VS 代码也是如此。

因此,解决方案是将 IIS Express 部分放回 launchsettings.json 文件中,并且在修复此问题之前不要将其删除。

  • 好吧,就我而言,它实际上是从允许我进行调试的服务器项目上的“launchSettings.json”中“删除”了“IIS Express”部分。 (3认同)

Ham*_*bas 5

在搜索了几天之后,我做了以下事情,它的效果非常好:

1.安装IE“微软边缘”

2.使用IE“Microsoft edge”作为你的VS。浏览器(Chrome )

3.将您的应用程序用作服务器(而不是 IIS EXPRESS)。

享受。 在此处输入图片说明