IIS 7.0を構成してAPKファイルのダウンロードを許可する方法を教えてください。
新しいMIMEタイプを追加するように指示する記事を見つけました。
ファイル名拡張子:.apk
MIMEタイプ:application/vnd.Android.package-archive
In IISでは、.APKファイルタイプをサポートするためにIISを許可するために、MIMEタイプを追加する必要があるため、.
これで十分ですか?
返信ありがとう
通常、新しいMIMEタイプを追加するだけで十分です。
application/vnd.Android.package-archive
これをweb.config
に追加します。
<system.webServer>
<staticContent>
<mimeMap fileExtension="apk" mimeType="application/vnd.Android.package-archive" />
</staticContent>
<system.webServer>
拡張子:.apk
タイプMIME:application/octet-stream
上記の方法を使用する場合、MIMEタイプをIISで設定する必要はありません。Igorが述べたように、web.configファイルに静的コンテンツを追加するだけです。
apkは実際にはZipファイルであり、IISはそれを知っているため、より良いオプションはZipファイルのMIMEを使用することです。
私にとっては、Windows 10 Anniversaryを搭載したサーバーで問題なく動作しました。
ASP.NET Coreアプリケーションの場合、IIS変更は機能しません。
あなたのStartup.cs
ファイルのConfigure
メソッド、次の変更を行います:
app.UseStaticFiles(new StaticFileOptions()
{
ContentTypeProvider = new FileExtensionContentTypeProvider(new Dictionary<string, string>
{
{ ".apk","application/vnd.Android.package-archive"}
})
});
より良いオプションは、拡張機能とMIMEタイプのペアをconfigから読み取り、次のようにConfigメソッドに挿入して、拡張機能を構成から管理できるようにすることです。
appsettings.json
:
"StaticFilesConfig": {
"AllowedExtensions": {
".apk": "application/vnd.Android.package-archive",
".ext": "application/ext-example-mimetype" // example
}
}
Startup.cs
:
public void ConfigureServices(IServiceCollection services)
{
....
services.Configure<StaticFilesConfig>(Configuration.GetSection("StaticFilesConfig"));
....
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env
, ILoggerFactory loggerFactory, IOptions<StaticFilesConfig> staticFilesConfig)
{
...
if (staticFilesConfig != null)
{
SetStaticFileOptions(app, staticFilesConfig);
}
...
}
private void SetStaticFileOptions(IApplicationBuilder app
, IOptions<StaticFilesConfig> staticFilesOptions)
{
var mapping = staticFilesOptions.Value.AllowedExtensions;
if (mapping != null && mapping.Any())
{
var provider =
new FileExtensionContentTypeProvider(staticFilesOptions.Value.AllowedExtensions);
app.UseStaticFiles(new StaticFileOptions
{
ContentTypeProvider = provider
});
}
}
}
StaticFilesConfig.cs
:
public class StaticFilesConfig
{
public IDictionary<string, string> AllowedExtensions { get; set; }
}