如何允许 powershell 从 .net core MVC Web 应用程序下载 EXE?

Mic*_*k R 1 .net c# asp.net-mvc powershell asp.net-core

我有一个 .net core MVC Web 应用程序,它依赖于 .net Framework 控制台应用程序。当核心应用程序构建时,控制台应用程序也会构建,我会exe在 bin 目录中得到:

在此输入图像描述

这很好用,但是现在我需要通过 Web 应用程序提供一个端点,允许任何人下载 EXE(目的是允许 powershell 脚本通过端点下载 exe)。

如何才能实现这一目标?

据我了解,以下内容可用于实际下载文件:

Invoke-WebRequest http://localhost:8080/download/tokenizer.exe -OutFile c:\download\tokenizer.exe
Run Code Online (Sandbox Code Playgroud)

但是我不知道如何获得exe可访问性。我相信我需要将 EXE 从 移动bin到某个目录,然后将其配置为可公开访问,但我不知道这里的详细信息。

小智 5

默认情况下,ASP.NET Core 静态文件中间件将仅提供它理解的内容类型。未知的文件类型将返回 404。

中间件可以配置为服务未知的文件类型,但是显式添加您自己的内容类型会更安全:

var provider = new FileExtensionContentTypeProvider();
provider.Mappings[".exe"] = "application/vnd.microsoft.portable-executable";
app.UseStaticFiles(new StaticFileOptions
    {
        ContentTypeProvider = provider,            
    });
Run Code Online (Sandbox Code Playgroud)