c# - 如何允许 powershell 从 .net 核心 MVC web 应用程序下载 EXE?

标签 c# .net asp.net-mvc powershell asp.net-core

我有一个依赖于 .net 框架控制台应用程序的 .net 核心 MVC 网络应用程序。当核心应用程序构建时,控制台应用程序也会构建,我在 bin 目录中获得了 exe:

enter image description here

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

如何实现?

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

Invoke-WebRequest http://localhost:8080/download/tokenizer.exe -OutFile c:\download\tokenizer.exe

但是我不知道如何让 exe 可访问。我认为我需要将 EXE 从 bin 移动到某个目录,然后我将其配置为可公开访问,但我在这里忘记了细节。

最佳答案

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

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

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

关于c# - 如何允许 powershell 从 .net 核心 MVC web 应用程序下载 EXE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47423744/

相关文章:

c# - 并非所有代码路径都有返回值

.net - @font-face 在本地主机上工作正常,但在 AppHarbor 中不行

c# - 将属性表单对象复制到另一个对象的扩展方法,第一次尝试

mysql - 如何保存和保留日期毫秒(MySQL)

c# - ajax中传递参数得到空值

c# - 在没有 Web.Config 的情况下配置表单例份验证

c# - WPF 从代码隐藏创建样式绑定(bind)

c# - VSTS 版本 : roles keep recycling because they can't locate valid DLLs

c# - HttpRequestMessage(HttpClient) 和 HttpWebRequest 选哪个?

javascript - 如何从 Javascript 导航到使用复杂类型作为 Javascript 参数的 MVC5 Controller