Blazor .Net 6.0 热重载

MBe*_*ius 3 blazor hot-reload .net-6.0

我有一个 asp.net 托管的 blazor wasm 应用程序,我刚刚从 5.0 升级到 6.0。当尝试从 VS 2022 或 dotnet watch run 热重载时,我在浏览器控制台中收到以下错误:

aspnetcore-browser-refresh.js:138

   Error: System.NullReferenceException: Object reference not set to an instance of an object.
Run Code Online (Sandbox Code Playgroud)

在 Microsoft.AspNetCore.Components.WebAssembly.HotReload.WebAssemblyHotReload.ApplyHotReloadDelta(String moduleIdString, Byte[]metadataDelta, Byte[] ilDeta) 在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] 参数、 CultureInfo 文化) --- 上一个位置的堆栈跟踪结束 --- 位于 Microsoft.JSInterop.Infrastruct.DotNetDispatcher.InvokeSynchronously(JSRuntime jsRuntime, DotNetInvocalInfo& callInfo, IDotNetObjectReference objectReference, String argsJson) 位于 Microsoft.JSInterop.Infrastruct.DotNetDispatcher.Invoke (JSRuntime jsRuntime、DotNetInvocauInfo& invocationInfo、字符串 argsJson) 在 Microsoft.AspNetCore.Components.WebAssembly.Services.DefaultWebAssemblyJSRuntime.InvokeDotNet(字符串 assemblyName、字符串 methodIdentifier、字符串 dotNetObjectId、字符串 argsJson) 在 Object._convert_exception_for_method_call (https://localhost:44362/ _framework/dotnet.6.0.0.qme34vl4fz.js:1:178709) 在 Object._handle_exception_for_call (https://localhost:44362/_framework/dotnet.6.0.0.qme34vl4fz.js:1:180678) 在托管__Microsoft_AspNetCore_Components_WebAssembly__Microsoft_AspNetCore_Components_WebAs sembly_Services_DefaultWebAssemblyJSRuntime_InvokeDotNet(https: //mono-wasm.invalid/managed__Microsoft_AspNetCore_Components_WebAssembly__Microsoft_AspNetCore_Components_WebAssembly_Services_DefaultWebAssemblyJSRuntime_InvokeDotNet:20:21 ) 在 Object.invokeDotNetFromJS (https://localhost:44362/_framework/blazor.webassemble.js?version=32330328618b 4ff08635274a6f31248c:1:42078) 在 g (https://本地主机:44362/_framework/blazor.web assembly.js?version=32330328618b4ff08635274a6f31248c:1:1618)在Object.e.invokeMethod(https://localhost:44362/_framework/blazor.web assembly.js?version=32330328618b4ff08635274a6f3 1248c:1:2665 )在 Object.St.Te._internal.applyHotReload (https://localhost:44362/_framework/blazor.web assembly.js?version=32330328618b4ff08635274a6f31248c:1:56100)在 https://localhost:44362/_framework/aspnetcore-browser -refresh.js:136:33 在 Array.forEach () 在 applyBlazorDeltas (https://localhost:44362/_framework/aspnetcore-browser-refresh.js:134:12)

Apo*_*ehn 5

我必须放在UseStaticFiltes()AFTER 后面UseBlazorFrameworkFiles(),否则会发生 NullReferenceException 。这对我有用:

app.UseBlazorFrameworkFiles();
app.UseStaticFiles();
Run Code Online (Sandbox Code Playgroud)