当.NET Core项目的IIS上添加的MIME类型不起作用时,如何进行调试

时间:2019-07-03 05:02:46

标签: c# iis .net-core mime-types

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

".apk"的地址是 http://example.com/Upload/App/a.apk并确认我指向正确的地址,已将图片文件放置在该位置(http://example.com/Upload/App/a.png),可以用浏览器打开图片。

我已经搜索了stackoverflow和google,并尝试了几个首页上的所有内容,但是它们都提供了相同的内容,而所提供的解决方案对每个人都有效,但对我却不起作用。


我尝试过的事情:

我已经按照所有文章,问题和文档中的步骤进行了此操作:

  1. IIS经理中,我选择了网站并单击了MIME Types
  2. 我点击了Add超级链接并定义了一个新的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

1 个答案:

答案 0 :(得分:1)

我在stackoverflow和google上的搜索错误。我在IIS上部署的项目是一个.Net Core网站,看来在.Net Core项目中,无需在MIME Types服务器上添加新的IIS。而是在MIME Types内的Configure()方法中处理Startup.cs

var provider = new FileExtensionContentTypeProvider();
provider.Mappings[".apk"] = "application/vnd.android.package-archive";

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