[英]Delivering Server Side Windows exe application via Asp.net
我從一個客戶那里得到了一個奇怪的要求,我已經與之抗爭了好幾個星期。
客戶端有一個獨立的 Winform exe 和基於 Windows 2012 Server 的 Web 應用程序。 計划是將exe應用程序合並到Web應用程序中,以便它可以通過瀏覽器呈現或通過超鏈接調用。 exe 應用程序是可移植的。 Web 應用程序在 .NET 框架 3.5 上運行,用 C# 編寫。
由於對服務器的高度安全限制,我的嘗試似乎都沒有奏效。 當我點擊頁面上的按鈕時,什么也沒有發生。
我現在正在探索通過 WebDAV 向最終用戶提供 exe 應用程序。 任何想法都會有所幫助
我嘗試了以下方法:
在 web.config 上我設置了路徑。
<appSettings>
<add key="EXELOC" value="C:\Temp\addons\"/>
</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:\Temp\Addons"
$Acl = Get-Acl $IncomingPath
$Ar = New-Object system.security.accesscontrol.filesystemaccessrule("IIS AppPool\addons","FullControl","ContainerInherit, ObjectInherit", "None", "Allow")
$Acl.SetAccessRule($Ar)
Set-Acl $IncomingPath $Acl
我還嘗試使用 URI:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Ach]
@="URL:Ach Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\Ach\DefaultIcon]
@="C:\\Temp\\addons\\Application.exe"
[HKEY_CLASSES_ROOT\Ach\shell]
[HKEY_CLASSES_ROOT\Ach\shell\open]
[HKEY_CLASSES_ROOT\Ach\shell\open\command]
@="\"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 文件不會神奇地將其輸出傳輸到瀏覽器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.