无法从 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:port
在 launchsettings.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