通过 Asp.net 交付服务器端 Windows exe 应用程序



我有一个客户提出的奇怪要求,我已经为此奋斗了数周。

客户端有一个独立的Winform exe和Web应用程序位于Windows 2012服务器上。该计划是将 exe 应用程序合并到 Web 应用程序中,以便可以通过浏览器呈现或通过超链接调用它。exe 应用程序是可移植的。Web 应用程序在 .NET Framework 3.5 上运行,用 C# 编写。

由于服务器上的高安全性限制,我的尝试似乎都没有奏效。当我单击页面上的按钮时,没有任何反应。

我现在正在探索通过 WebDAV 向最终用户交付 exe 应用程序。任何想法都会有所帮助

我尝试了以下方法:

在web.config上,我设置了路径。

<appSettings>
<add key="EXELOC" value="C:Tempaddons"/>
</appSettings>

在 aspx 页上,我有一个调用应用程序的按钮。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Diagnostics;
using System.Configuration;
public partial class _Default : System.Web.UI.Page 
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnStart_Click(object sender, EventArgs e)
{
string locn = ConfigurationManager.AppSettings["EXELOC"];
Process myProcess = new Process();
try
{
myProcess.StartInfo.UseShellExecute = True;
myProcess.StartInfo.FileName = locn + "Application.exe";
myProcess.StartInfo.CreateNoWindow = true;
myProcess.Start();           
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}

我为 IIS 应用程序池设置了访问 exe 所在文件夹的权限:

$IncomingPath = "C:TempAddons"
$Acl = Get-Acl $IncomingPath
$Ar = New-Object  system.security.accesscontrol.filesystemaccessrule("IIS AppPooladdons","FullControl","ContainerInherit, ObjectInherit", "None", "Allow")
$Acl.SetAccessRule($Ar)
Set-Acl $IncomingPath $Acl

我还尝试使用URI:

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOTAch]
@="URL:Ach Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOTAchDefaultIcon]
@="C:\Temp\addons\Application.exe"
[HKEY_CLASSES_ROOTAchshell]
[HKEY_CLASSES_ROOTAchshellopen]
[HKEY_CLASSES_ROOTAchshellopencommand]
@=""C:\Temp\addons\Application.exe" /u "%1""

我还尝试设置应用程序UNC并通过Javascript调用:

<script type="text/javascript" language="javascript">
function RunFile() {
WshShell = new ActiveXObject("WScript.Shell");
WshShell.Run("\\192.168.5.8\Applications\Application.bat", 1,false);
}
</script>

没有任何效果。

现在是时候告诉客户,他想要什么并不重要,除非他愿意为重新开发整个平台付费,这意味着数千万美元的成本。这根本不是事情的运作方式,无论他想要什么。.在服务器上运行的 exe 文件不会神奇地将其输出传输到浏览器。

最新更新