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

Posted

技术标签:

【中文标题】无法从 Visual Studio 2019 16.6.2 调试 Blazor 托管的 webassembly 3.2.0【英文标题】:Unable to debug Blazor hosted webassembly 3.2.0 from Visual Studio 2019 16.6.2 【发布时间】:2020-10-02 13:46:49 【问题描述】:

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

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

但是当我按下 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

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

我已按照Enforce HTTPS in ASP.NET Core 中的步骤进行操作,但这并没有什么不同。

如果在等待 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/

无论我多久运行一次命令(关闭所有浏览器实例、重新启动等),我每次都会得到这个。

Edge 84 (Edgium) 和 Chrome 都会出现这种情况。

我应该能够创建一个新的 Blazor WebAssembly 应用并在 Visual Studio 上按 F5 开箱即用。我错过了什么?

更新

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

更新 2

@JamesHancock 在 cmets 中发布了一个足够简单的解决方法。如需完整解决方案(和解释),请联系 ASP.NET Core 团队I've logged a Github issue。

【问题讨论】:

使用 Chrome 调试 Blazor - 更可靠 @MisterMagoo,我已经尝试过 Chrome 和 Edge 84 (Edgium)。结果相同。 你做了 Win+R 的事吗? 要尝试的另一件事是关闭 VS,删除项目/解决方案文件夹中的 .vs 文件夹,然后重试 @JamesHancock,你说得对,这也适用于我。只需从服务器项目的launchSettings.json 中删除IIS Express 部分似乎就足够了。显然,VS 将启动 Kestrel,并且按预期工作。现在足够好的解决方法;如果你愿意,你可以把它写成答案...... 【参考方案1】:

对我来说,我在Startup.Configure() 中缺少app.UseWebAssemblyDebugging();。希望这对某人有所帮助。

【讨论】:

@blightly,谢谢,但不幸的是,这不是我的情况。 ` app.UseWebAssemblyDebugging();` 在我尝试过的项目中已经默认添加,因为我使用的是最新版本的 Blazor Wasm 模板 我错误地注释了该​​行并导致错误“无法启动调试适配器”。显示。 谢谢,有帮助!我将我的 Balzor 服务器端转换为客户端应用程序,但错过了添加这一行【参考方案2】:

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

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

【讨论】:

好吧,在我的情况下,它实际上是从允许我调试的服务器项目的launchSettings.json删除 IIS Express 部分。【参考方案3】:

搜索了几天后,我做了以下事情,效果很好:

1.安装IE“微软边缘”

2.使用 IE "Microsoft edge" 作为你的 VS。浏览器(非 Chrome

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

享受。

【讨论】:

谢谢哈姆丹。我在 Chrome 和本地 IIS 上遇到了类似的问题。我的 webAssembly 应用程序在不调试的情况下运行良好,但在调试模式下,当我尝试导航到主页时,它以代码 0 退出,但仅在调试时运行。我在上面尝试了您的解决方案并切换到 Edge,将应用程序作为服务器运行,它现在也可以在调试模式下运行。调试模式下的 Chrome 或 IIS 似乎存在一些问题。【参考方案4】:

这听起来非常幼稚,但这就是我的全部问题。 我没有注意到差异中删除了这一行。

确保您的主构建并运行CreateHostBuilder 函数。

不幸的是,这会导致上述相同的错误,但根本不直接相关。

public static void Main(string[] args)

    CreateHostBuilder(args).Build().Run();

...
public static IHostBuilder CreateHostBuilder(string[] args)
...

【讨论】:

【参考方案5】:

如果我在创建项目时选择 Configure For HTTPS 选项,就会出现问题。


作为一种解决方法,

    对于 HTTPS 配置的项目,更改为 settings-sslport,更改为 0 applicationUrl 仅对 http://localhost:portlaunchsettings.json

我认为调试适配器存在潜在的安全相关问题。祝你好运!

【讨论】:

在一场看似无休止的战斗之后。当我想 ? 时使用 HTTP,可以。 HTTPS 仍在生产中?。【参考方案6】:

有一个加载完美的项目。放了几个星期,当我今晚再次打开它时,我遇到了这个问题。

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

 "IIS Express": 
  "commandName": "IISExpress",
  "launchBrowser": true,
  "inspectUri": "wsProtocol://url.hostname:url.port/_framework/debug/ws-proxy?browser=browserInspectUri",
  "environmentVariables": 
    "ASPNETCORE_ENVIRONMENT": "Development"
  
,

我删除了这一行

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

按 F5 就可以了!

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

【讨论】:

以上是关于无法从 Visual Studio 2019 16.6.2 调试 Blazor 托管的 webassembly 3.2.0的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2019,v16.7.5:无法推送到多个存储库

无法从 Visual Studio 2019 发布到 Azure Functions

尝试在 Windows 10 x64 上使用 Visual Studio 2019 v16.6.5 从 github 构建 GDAL

Visual Studio 2019 16.1 使用 .NET Core 3.0

Visual Studio 2019 无法识别从 GitHub 提取的新文件

Visual Studio 2019 更新中断发布(不正确的 TLS 版本)