首页 > 解决方案 > 使用 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));
}

标签: c#asp.net-mvcwpf

解决方案


这是一个安全问题,所以我会说不。想象一下,如果恶意网站上的链接可以在最终用户的 PC 上下载和运行程序,那将是一场灾难。

不知道你为什么需要它,但如果你需要从浏览器启动你的 wpf 应用程序。然后,您可以创建一个链接来引用指向您已安装的应用程序的 uri 方案。您必须在安装例程或应用程序中的一次性作业期间将其添加到注册表。 在 Windows 10 中将应用程序注册到 URI 方案

希望这会有所帮助,我认为这是从浏览器运行应用程序最接近的方法。但是无法在下载后自动启动。


推荐阅读