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

如何为ServiceStack添加.wasm后缀的MIME类型并允许其被访问?

解决ServiceStack Windows服务无法提供.wasm静态文件的问题

你的代码问题出在创建了新的HostConfig实例,而不是修改ServiceStack AppHost正在使用的现有配置对象。咱们一步步来修正配置:

错误原因分析

你这段代码里:

var config = new HostConfig(); 
var allowFileExtensions = config.AllowFileExtensions;
allowFileExtensions.Add(".wasm");

新建的HostConfig只是一个独立的对象,和AppHost运行时依赖的配置没有任何关联,所以你的扩展名添加操作完全不会生效。同时,虽然你设置了MIME类型映射,但因为扩展名没被允许,请求还是会被拦截返回403。

正确的配置方式

直接修改AppHost已有的Config实例,同时确保MIME类型映射正确设置:

public void Configure(IAppHost appHost)
{
    // 关联.wasm后缀到application/wasm MIME类型
    MimeTypes.ExtensionMimeTypes["wasm"] = "application/wasm";
    
    // 获取AppHost当前使用的HostConfig,添加.wasm到允许的扩展名列表
    var hostConfig = appHost.Config;
    if (!hostConfig.AllowFileExtensions.Contains(".wasm"))
    {
        hostConfig.AllowFileExtensions.Add(".wasm");
    }
}

额外说明

如果你的服务中单独配置了StaticFileFeature插件,也可以直接修改该插件的配置来确保生效:

public void Configure(IAppHost appHost)
{
    MimeTypes.ExtensionMimeTypes["wasm"] = "application/wasm";
    
    var staticFileFeature = appHost.GetPlugin<StaticFileFeature>();
    if (staticFileFeature != null && !staticFileFeature.Config.AllowFileExtensions.Contains(".wasm"))
    {
        staticFileFeature.Config.AllowFileExtensions.Add(".wasm");
    }
}

这样修改后,你的.wasm文件应该能正常被服务端返回,并且响应头的Content-Type会正确设置为application/wasm,不会再出现403错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:35:21