簡體   English   中英

通過 Asp.net 交付服務器端 Windows exe 應用程序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM