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

如何在Azure的ASP.NET Core MVC中托管.pem文件到/.well-known目录?

解决Azure Web App中ASP.NET Core MVC项目.pem文件404问题

以下是针对你遇到的问题的排查和解决步骤:

  • 检查静态文件中间件配置
    ASP.NET Core默认静态文件中间件不会自动识别并提供.pem这类非常规文件类型。需要在Program.cs中明确配置允许该扩展名:

    var builder = WebApplication.CreateBuilder(args);
    
    builder.Services.AddControllersWithViews();
    
    var app = builder.Build();
    
    // 配置静态文件,添加.pem对应的MIME类型
    app.UseStaticFiles(new StaticFileOptions
    {
        ContentTypeProvider = new FileExtensionContentTypeProvider
        {
            Mappings = { [".pem"] = "application/x-pem-file" }
        }
    });
    
    app.UseRouting();
    app.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");
    
    app.Run();
    

    这段代码会告知静态文件中间件如何处理.pem文件,允许其被正常访问。

  • 配置Azure Web App的MIME类型
    如果静态文件配置后仍无法访问,可通过配置文件补充MIME类型映射:

    • Windows计划:在项目根目录添加web.config文件,写入以下内容:
      <configuration>
        <system.webServer>
          <staticContent>
            <mimeMap fileExtension=".pem" mimeType="application/x-pem-file" />
          </staticContent>
        </system.webServer>
      </configuration>
      
    • Linux计划:在wwwroot/.well-known目录下创建.htaccess文件,添加:
      AddType application/x-pem-file .pem
      
  • 验证路径大小写一致性
    若使用Linux环境的Azure Web App,文件系统区分大小写。请确认访问URL中的文件名(如XXX.pem)与Kudu控制台中显示的文件名(如xxxx.pem)大小写完全匹配,Linux环境下大小写不同会被视为不同文件。

  • 排查路由或重写规则拦截
    检查项目Program.cs中的路由配置,以及Azure门户Web App的「URL重写」设置,确保没有自定义规则拦截或重定向.well-known路径的请求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 06:26:19