.NET 9中<InputFile>的OnChange致应用崩溃,是否有已知变更及修复方案?
Blazor .NET9 InputFile组件崩溃问题解答
已知原因
.NET9对Blazor InputFile组件的底层实现(包括interop交互逻辑、文件流处理机制)进行了调整,该崩溃问题属于.NET9早期版本(部分预览版或初始稳定版)中的已知bug,核心诱因是组件处理文件选择事件时的内存管理异常或interop调用错误。
修复方案
- 升级至.NET9最新稳定补丁版本:官方已在后续更新中修复了该InputFile相关崩溃问题,更新后即可正常使用原代码。
- 临时规避方案(无法立即升级时):
- 调整事件处理逻辑,确保正确处置文件流,示例代码:
private async Task HandleSelection(InputFileChangeEventArgs e) { await using var stream = e.File.OpenReadStream(); // 按需添加流读取操作,避免仅获取File对象而不进行实际处理 var buffer = new byte[(int)stream.Length]; await stream.ReadAsync(buffer); } - 若启用了Blazor WASM AOT编译,可尝试临时关闭AOT,在项目文件中修改配置:
<BlazorWebAssemblyEnableAOT>false</BlazorWebAssemblyEnableAOT>
- 调整事件处理逻辑,确保正确处置文件流,示例代码:
内容的提问来源于stack exchange,提问作者Dennis Gundersen
相关产品推荐
相关产品推荐

