升级.NET 6.0.15后调试Blazor应用启动崩溃,无调试正常运行
我的Blazor应用在调试模式下启动时直接崩溃,但不使用调试器能正常运行。该问题是在3月15日升级至.NET 6.0.15后出现的。错误堆栈追踪如下:
Microsoft.WebAssembly.Diagnostics.DevToolsProxy[0] DevToolsProxy::Run: Exception System.AggregateException: One or more errors occurred. (Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index'))
---> System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
at System.Collections.Generic.List1.get_Item(Int32 index) at Newtonsoft.Json.Linq.JContainer.GetItem(Int32 index) at Newtonsoft.Json.Linq.JArray.get_Item(Object key) at Microsoft.WebAssembly.Diagnostics.MonoProxy.AcceptEvent(SessionId sessionId, String method, JObject args, CancellationToken token) at Microsoft.WebAssembly.Diagnostics.DevToolsProxy.OnEvent(SessionId sessionId, String method, JObject args, CancellationToken token) --- End of inner exception stack trace --- at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) at System.Threading.Tasks.Task1.GetResultCore(Boolean waitCompletionNotification)
at System.Threading.Tasks.Task`1.get_Result()
at Microsoft.WebAssembly.Diagnostics.DevToolsProxy.Run(Uri browserUri, WebSocket ideSocket)
已尝试搜索相关问题但无结果,将所有NuGet包更新至6.0.15后问题仍未解决。
可能的解决方法
- 清理项目缓存与构建输出
删除项目目录下的bin、obj文件夹,以及用户目录.nuget/packages中.NET 6.0.15相关的缓存文件,之后重新构建项目。 - 单独回滚调试服务器包
将Microsoft.AspNetCore.Components.WebAssembly.DevServer包回滚至6.0.14版本,其余包保持6.0.15,验证调试模式是否恢复正常。 - 调整调试器配置
在Visual Studio项目属性的「调试」选项卡中,禁用「启用JavaScript调试」;或切换调试目标浏览器(如从Chrome改为Edge)尝试。 - 修复WebAssembly SDK工作负载
打开命令提示符执行:
修复WebAssembly相关的SDK组件,确保调试依赖完整。sdk workload repair wasm-tools - 反馈官方Bug
该问题大概率是.NET 6.0.15调试组件的Bug,可在.NET官方仓库提交Issue,附上完整堆栈和复现步骤。
内容的提问来源于stack exchange,提问作者Rossend

