簡體   English   中英

Blazor.Net 6.0 熱重載

[英]Blazor .Net 6.0 Hot Reload

我有一個 asp.net 托管的 blazor wasm 應用程序,我剛剛從 5.0 升級到 6.0。 從 VS 2022 或從 do.net watch run 嘗試熱重載時,我在瀏覽器控制台中收到以下錯誤:

as.netcore-browser-refresh.js:138

   Error: System.NullReferenceException: Object reference not set to an instance of an object.

在 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 culture) --- 從先前位置開始的堆棧跟蹤結束 --- 在 Microsoft.JSInterop.Infrastructure.DotNetDispatcher.InvokeSynchronously(JSRuntime jsRuntime, DotNetInvocationInfo& callInfo, IDotNetObjectReference objectReference, String argsJson) 在 Microsoft.JSInterop.Infrastructure.DotNetDispatcher.Invoke (JSRuntime jsRuntime, DotNetInvocationInfo& invocationInfo, String argsJson) 在 Microsoft.AspNetCore.Components.WebAssembly.Services.DefaultWebAssemblyJSRuntime.InvokeDotNet(String assemblyName, String methodIdentifier, String dotNetObjectId, String argsJson) 在 Object._convert_exception_for_4s32host/call ( _framework/do.net.6.0.0.qme34vl4fz.js:1:178709) 在 Object._h andle_exception_for_call (https://localhost:44362/_framework/do.net.6.0.0.qme34vl4fz.js:1:180678) at managed__Microsoft_AspNetCore_Components_WebAssembly__Microsoft_AspNetCore_Components_WebAssembly_Services_DefaultWebAssemblyJSRuntime_InvokeDotNet ( https://mono-wasm.invalid/managed__Microsoft_AspNetCore_Components_WebAssembly__Microsoft_AspNetCore_Components_WebAssembly_Services_DefaultWebAssemblyJSRuntime_InvokeDotNet:20:21 ) at Object. invokeDotNetFromJS (https://localhost:44362/_framework/blazor.webassembly.js?version=32330328618b4ff08635274a6f31248c:1:42078) 在 g (https://localhost:44362/_framework/blazor.webassembly.js?version=32330328618b4ff0846f352 :1618) 在 Object.e.invokeMethod (https://localhost:44362/_framework/blazor.webassembly.js?version=32330328618b4ff08635274a6f31248c:1:2665) 在 Object.St.httpsHothostTe._internal. :44362/_framework/blazor.webassembly.js?version=32330328618b4ff08635274a6f31248c:1:56100) 在 8 8105633527088://localhost:44362/_framework/as.netcore-browser-refresh.js:136:33 在 Array.forEach () 在 applyBlazorDeltas (https://localhost:44362/_framework/as.netcore-browser-refresh. JS:134:12)

我必須在UseStaticFiltes()之后UseBlazorFrameworkFiles() ,否則會發生 NullReferenceException。 這對我有用:

app.UseBlazorFrameworkFiles();
app.UseStaticFiles();

檢查你的*.csproj項目文件,看看是否有任何與目標平台相關的配置。 如果是這樣,請將其刪除並重試。 例如:

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
    <PlatformTarget>AnyCPU</PlatformTarget>
    <Prefer32Bit>true</Prefer32Bit>
    <Optimize>True</Optimize>
</PropertyGroup>

我遇到了完全相同的問題,並在嘗試排除故障時遇到了您的帖子。

令我懊惱的是,我承認原因是由於運行了發布版本。 我必須(以某種方式)在某個時候將其更改為 Release 版本而沒有意識到。

一旦回到調試模式(但沒有連接調試器),熱重載現在又可以工作了。

Visual Studio 中的錯誤

Chrome 中的錯誤

我們已通過將所有Microsoft軟件包更新到最新版本來解決此問題。

對我來說,通過將AS.NETCORE_ENVIRONMENTLocal更改為Development解決了這個問題。 更多細節在這里: https://github.com/do.net/as.netcore/issues/39269

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM