ASP .NET Core 2.0 MVC 发布到 IIS 上以后 无法下载apk等格式的文件

ASP .NET Core 2.0 MVC 发布到 IIS 上以后 无法下载apk等格式的文件

 ASP .NET Core MVC 发布到  IIS 上以后 无法下载apk等格式的文件

使用.NET Core MVC创建了一个站点,其他文件可以下载,但是后来又需求,就把手机端的apk合适的文件上传到服务端了,

即把apk 文件放到网站的wwwroot目录下的Update文件夹下,名字叫apkupdate.apk,

然后访问:http://192.168.1.219:8080/Update/apkupdate.apk,页面返回给我一个404 not find ,

错误如下图所示

ASP .NET Core 2.0 MVC 发布到 IIS 上以后 无法下载apk等格式的文件

 

上网查看了,说是IIS上没有设置APK 的MIME 的原因,随后设置的APK 的MIME类型,如下

文件扩展名  .apk, MIME类型:application/vnd.android.package-archive

ASP .NET Core 2.0 MVC 发布到 IIS 上以后 无法下载apk等格式的文件

 

然后重启IIS   运行 IISRESET,

但是设置完后重新打开浏览器,还是返回  

找不到 192.168.1.219 的网页

找不到与以下网址对应的网页:http://192.168.1.219:8080/Update/apkupdate.apk

HTTP ERROR 404
 
搜索的很多资料才发现原来是  程序导致的,于是回头把程序修改了一下,重新发布,再打开浏览器就可以了下载APK格式的文件了。
修改的内容如下:
在  startup.cs文件中修改(标红部分)

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseBrowserLink();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
//使用静态文件
app.UseStaticFiles();


app.UseStaticFiles(new StaticFileOptions
{
  //FileProvider = new PhysicalFileProvider(Directory.GetCurrentDirectory()),
  //设置不限制content-type 该设置可以下载所有类型的文件,但是不建议这么设置,因为不安全
  //ServeUnknownFileTypes = true 
  //下面设置可以下载apk和nupkg类型的文件
  ContentTypeProvider = new FileExtensionContentTypeProvider(new Dictionary<string, string>
  {
    { ".apk","application/vnd.android.package-archive"},
    { ".nupkg","application/zip"}
  })
  });
  app.UseStaticFiles();
  app.UseSession();
  app.UseMvc(routes =>
{
  routes.MapRoute(
  name: "default",
  template: "{controller=Login}/{action=Index}/{id?}");
});
//InitializeData.Initialize();
}


参考链接:http://www.bkjia.com/Asp_Netjc/1227554.html