重要
Blazor WebAssembly 为预览版状态
ASP.NET Core 3.0 支持 Blazor Server 。 Blazor WebAssembly 在 ASP.NET Core 3.1 中为预览版。
对于使用基于 Chromium 的浏览器中的浏览器开发工具(Chrome/Microsoft Edge)调试 [!OP.NO-LOC(Blazor)] WebAssembly,存在早期支持。 正在进行的工作:
调试器功能受到限制。 可用方案包括:
F10
)或继续(F8
)代码执行。int
、string
和 bool
的任何本地变量的值。不能:
int
、string
或 bool
的任何局部变量的值。开发进一步的调试方案是工程团队不断关注的重点。
调试需要以下任一浏览器:
警告
Visual Studio 中的调试支持在开发的早期阶段。 当前不支持F5调试。
在不进行调试的情况下,在 Debug
配置中运行 [!OP.NO-LOC(Blazor)] WebAssembly 应用(Ctrl+f5 ,而不是按f5)。
打开应用程序的 "调试" 属性("调试" 菜单中的 "最后一项"),然后复制 "HTTP应用程序 URL"。 使用基于 Chromium 的浏览器(边缘 Beta 版或 Chrome)浏览到应用的 HTTP 地址(而非 HTTPS 地址)。
将键盘焦点置于浏览器窗口中,而不是开发人员工具面板中。 最好将此过程的 "开发人员工具" 面板保持为关闭状态。 调试开始后,你可以重新打开 "开发人员工具" 面板。
选择以下特定于 [!OP.NO-LOC(Blazor)]的键盘快捷方式:
Shift+Alt+D
Shift+Cmd+D
如果收到 "找不到可调试的浏览器" 选项卡,请参阅启用远程调试。
启用远程调试后:
1 \。 此时将打开一个新的浏览器窗口。 关闭前面的窗口。
2。 将键盘焦点置于浏览器窗口中的应用程序上。
3。 在新的浏览器窗口中选择特定于 [!OP.NO-LOC(Blazor)]的键盘快捷方式: Shift+Alt+D
在 Windows 上,或在 macOS 上的 "Shift+Cmd+D
"。
4 \。 " DevTools " 选项卡将在浏览器中打开。 在浏览器窗口中重新选择应用的选项卡。
若要将应用附加到 Visual Studio,请参阅Visual studio 中的 "附加到进程" 部分。
通过将 --configuration Debug
选项传递到dotnet run命令,在 Debug
配置中运行 [!OP.NO-LOC(Blazor)] WebAssembly 应用: dotnet run --configuration Debug
。
在 shell 窗口中显示的 HTTP URL 处导航到应用。
将键盘焦点置于应用上,而不是开发人员工具面板上。 最好将此过程的 "开发人员工具" 面板保持为关闭状态。 调试开始后,你可以重新打开 "开发人员工具" 面板。
选择以下特定于 [!OP.NO-LOC(Blazor)]的键盘快捷方式:
Shift+Alt+D
Shift+Cmd+D
如果收到 "找不到可调试的浏览器" 选项卡,请参阅启用远程调试。
启用远程调试后:
1 \。 此时将打开一个新的浏览器窗口。 关闭前面的窗口。
2。 将键盘焦点置于浏览器窗口中,而不是开发人员工具面板中。
3。 在新的浏览器窗口中选择特定于 [!OP.NO-LOC(Blazor)]的键盘快捷方式: Shift+Alt+D
在 Windows 上,或在 macOS 上的 "Shift+Cmd+D
"。
如果远程调试处于禁用状态,则无法查找可调试浏览器选项卡错误页面由 Chrome 生成。 "错误" 页包含有关运行 Chrome 的说明,其中打开了调试端口,以便 Blazor 调试代理可以连接到应用程序。 关闭所有 Chrome 实例,并按指示重新启动 chrome。
在启用了远程调试的情况下运行 Chrome 后,调试键盘快捷方式将打开一个新的 "调试器" 选项卡。一段时间后,"源" 选项卡显示应用程序中的 .net 程序集列表。 展开每个程序集,找到可用于调试的 .cs/razor源文件。 设置断点,切换回应用的选项卡,并在代码执行时命中断点。 命中断点后,通过代码执行单步(F10
)或正常执行(F8
)代码执行。
Blazor 提供了一个调试代理,该代理实现Chrome DevTools 协议,并使用对协议进行补充。特定于网络的信息。 按下调试键盘快捷方式时,Blazor 指向代理处的 Chrome DevTools。 代理连接到要调试的浏览器窗口(因此需要启用远程调试)。
在 Visual Studio 中附加到应用程序的过程是一种用于 Blazor WebAssembly 的临时调试方案,而F5调试正在开发中。
将正在运行的应用程序的进程附加到 Visual Studio:
浏览器源映射允许浏览器将已编译的文件映射回其原始源文件,并且通常用于客户端调试。 但 Blazor 当前不会直接C#映射到 JAVASCRIPT/WASM。 相反,Blazor 在浏览器中执行 IL 解释,因此源映射不相关。
如果遇到错误,下列提示可能会有所帮助:
在 "调试器" 选项卡上,在浏览器中打开开发人员工具。 在控制台中,执行 localStorage.clear()
以删除任何断点。