c# - 使用 ASP.NET MVC,是否可以在下载后执行 WPF .exe 文件?
问题描述
我有一个带有按钮的 ASP.NET MVC Web 应用程序,用于下载.exe
现有 WPF 应用程序的文件。它下载正常,但是在浏览器窗口中单击时,它不会执行。我将如何解决这个问题?
[HttpGet]
public FileResult downloadFile()
{
var fileName = string.Format("MyApp.exe", DateTime.Today.Date.ToString("dd-MM-yyyy") + "_1");
var tempOutPutPath = Server.MapPath(Url.Content("~/File/")) + fileName;
byte[] finalResult = System.IO.File.ReadAllBytes(tempOutPutPath);
if (System.IO.File.Exists(tempOutPutPath))
System.IO.File.Delete(tempOutPutPath);
if (finalResult == null || !finalResult.Any())
throw new Exception(String.Format("No Files found"));
return File(finalResult, System.Net.Mime.MediaTypeNames.Application.Octet, Path.GetFileName(fileName));
}
解决方案
这是一个安全问题,所以我会说不。想象一下,如果恶意网站上的链接可以在最终用户的 PC 上下载和运行程序,那将是一场灾难。
不知道你为什么需要它,但如果你需要从浏览器启动你的 wpf 应用程序。然后,您可以创建一个链接来引用指向您已安装的应用程序的 uri 方案。您必须在安装例程或应用程序中的一次性作业期间将其添加到注册表。 在 Windows 10 中将应用程序注册到 URI 方案
希望这会有所帮助,我认为这是从浏览器运行应用程序最接近的方法。但是无法在下载后自动启动。
推荐阅读
- angular - Angular 7按钮提交刷新页面
- swagger - 从 springboot REST 服务生成 Swagger 定义文件(JSON 或 YAML)
- css - 鼠标在圆角QPushButton时如何不触发悬停状态?
- node.js - 混淆新旧 Javascript 语法
- node.js - 在使用带有多直流设置的 express cassandra 时需要帮助
- javascript - reactjs如何从数组中删除重复的对象
- c - 在 C 中超出时间限制
- python - 当您不知道先前的密钥时,从 data:dict 中获取
- python-3.x - 如何计算python中数组中重复项的数量?
- javascript - 给定此哈希函数、预期输出和输入字符串的长度,我如何找到返回给定结果的输入字符串?