You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

独立托管WASM ASP.NET Core时部分文件加载失败问题

解决Blazor WASM托管时icudt文件404问题

问题原因

Kestrel默认的静态文件中间件未为.dat这类不常见扩展名配置正确的MIME类型,导致服务器无法识别该文件类型,返回404错误。而.png这类常见扩展名文件能正常访问,是因为它们的MIME类型已被默认配置。

解决方案

修改托管项目的Program.cs,调整静态文件中间件配置即可解决:

方案1:允许加载所有类型的静态文件

直接让Kestrel处理所有静态文件,不管扩展名是否被系统识别:

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

app.UseStaticFiles(new StaticFileOptions
{
    ServeUnknownFileTypes = true,
    DefaultContentType = "application/octet-stream"
});

app.MapFallbackToFile("index.html");

app.Run();

ServeUnknownFileTypes设为true后,服务器会响应所有静态文件请求,DefaultContentType指定默认二进制流类型,确保浏览器能正确加载文件。

方案2:单独添加.dat文件的MIME类型映射

如果不想开放所有未知文件类型,可单独为.dat文件配置MIME类型:

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

var contentTypeProvider = new FileExtensionContentTypeProvider();
// 为.dat文件添加MIME类型映射
contentTypeProvider.Mappings[".dat"] = "application/octet-stream";

app.UseStaticFiles(new StaticFileOptions
{
    ContentTypeProvider = contentTypeProvider
});

app.MapFallbackToFile("index.html");

app.Run();

验证与后续部署

修改完成后重新运行托管项目,访问报错的icudt_EFIGS.tptq2av103.dat文件,确认能正常加载。之后即可将托管项目发布为Windows Service,使用Kestrel作为服务器运行。

内容的提问来源于stack exchange,提问作者Jasper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 19:36:00