添加的 MIME 类型在 .Net Core 项目的 IIS 上不起作用时如何调试

How to debug when added MIME Type is not working on IIS for .Net Core projects

当我在浏览器中引用 ".apk" 文件时,无论是 http 还是 https 响应都是 error 404 并且它不会开始下载该文件.

".apk"的地址是 http://example.com/Upload/App/a.apk 为了验证我指向的地址是否正确,我在该位置放置了一个图片文件 (http://example.com/Upload/App/a.png),我可以通过浏览器打开图片。

我在 Whosebug 和 google 上进行了搜索,并尝试了几个首页上的所有内容,但所有页面都提供了相同的内容,虽然所提供的解决方案对每个人都适用,但对我却不起作用。


我尝试过的:

我已经完成了所有文章、问题和文档中提供的这些步骤:

  1. IIS 管理器中,我选择了网站并单击 MIME Types
  2. 我点击了 Add hyper link 并定义了一个新的 MIME Type
  3. 扩展名的值为 ".apk",MIME 类型的值为 "application/vnd.android.package-archive"

我发现这些行已自动添加到 web.config:

<system.webServer>
    <staticContent>
        <mimeMap fileExtension=".apk" mimeType="application/vnd.android.package-archive" />
    </staticContent>
</system.webServer>

定义新 MIME Type 后我重新启动了网站,重新启动了整个 IIS 服务,我仍然得到 404 error 如果有人可以指导我如何调试问题出在这一点上。


跟踪日志:

根据评论中的建议,我启用了 Troubleshooting Failed Requests Using Tracing:

Headers="Connection: close
Accept: 
text/html,application/xhtml+xml,
application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed- 
exchange;v=b3
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9

我在 Whosebug 和 google 上的搜索是错误的。我在 IIS 上部署的项目是一个 .Net Core 网站,在 .Net Core 项目中似乎不需要在 IIS 服务器中添加新的 MIME Types。相反 MIME TypesStartup.cs

中的 Configure() 方法中处理
var provider = new FileExtensionContentTypeProvider();
provider.Mappings[".apk"] = "application/vnd.android.package-archive";

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