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

Azure中ASP.NET Core+React应用的.mem与.wasm MIME类型错误排查

解决Azure App Service上PDFTron加载Excel时的MIME类型错误

针对你遇到的问题,核心原因有两个:一是web.config里的MIME类型配置有误,二是ASP.NET Core InProcess托管模式下,静态文件中间件可能会忽略IIS的web.config配置,需要在代码中显式配置MIME映射。以下是具体解决方案:

1. 修正web.config中的MIME类型错误

你当前web.config里的.wasm MIME类型写错了,重复了application/前缀,正确配置应该是:

<system.webServer>
    <handlers>
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath="dotnet" arguments=".\DocuParseWebApp.dll" stdoutLogEnabled="false" stdoutLogFile="\\?\%home%\LogFiles\stdout" hostingModel="inprocess" />
    <staticContent>
        <mimeMap fileExtension=".xod" mimeType="application/octet-stream" />
        <mimeMap fileExtension=".res" mimeType="application/octet-stream" />
        <mimeMap fileExtension=".mem" mimeType="application/octet-stream" />
        <mimeMap fileExtension=".wasm" mimeType="application/wasm" />
     </staticContent>
</system.webServer>

2. 在Program.cs中显式配置静态文件MIME映射

由于你的应用使用InProcess托管模式,ASP.NET Core的静态文件中间件会接管静态文件处理,此时web.config中的静态内容配置可能不生效。需要在代码中添加MIME类型映射:

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddControllers();

var app = builder.Build();

// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
    app.UseHsts();
}

app.UseHttpsRedirection();

// 配置自定义MIME类型映射
var contentTypeProvider = new FileExtensionContentTypeProvider();
// 添加PDFTron所需的MIME类型
contentTypeProvider.Mappings[".mem"] = "application/octet-stream";
contentTypeProvider.Mappings[".wasm"] = "application/wasm";
contentTypeProvider.Mappings[".xod"] = "application/octet-stream";
contentTypeProvider.Mappings[".res"] = "application/octet-stream";

// 使用配置好的MIME提供器加载静态文件
app.UseStaticFiles(new StaticFileOptions
{
    ContentTypeProvider = contentTypeProvider
});

app.MapControllerRoute(
    name: "default",
    pattern: "{controller}/{action=Index}/{id?}");

app.MapFallbackToFile("index.html");

app.Run();

3. 确保web.config不会被发布覆盖

如果是通过Visual Studio发布应用,手动修改Azure上的web.config会在下次发布时被覆盖。建议将修改后的web.config放在项目根目录,右键文件选择“属性”,设置“复制到输出目录”为“始终复制”,这样发布时会自动将正确的配置文件部署到Azure。

4. 验证静态文件部署情况

登录Azure门户,进入你的App Service,打开“高级工具”>“Kudu”,检查wwwroot目录下是否存在PDFTron的.mem和.wasm文件,确保文件路径与前端调用的路径一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 02:45:38