【问题标题】:How to run an EXE file through URL on .Net shared hosting如何通过 .Net 共享主机上的 URL 运行 EXE 文件
【发布时间】:2019-02-20 04:09:47
【问题描述】:

我尝试按计划运行一个简单的 ETL 过程,以填充 .Net 共享主机上的 SQL Server 数据库表。 EXE 文件将与网站一起托管,当它运行时,它将进行一些 API 调用并获取数据以更新网站的 SQL 表。 我的托管公司允许支付额外费用(按时调用 exe 文件),但他们要求我将其打包并使用 URL 调用。只要我提供 URL,他们不介意使用任何技术。我几乎没有尝试让这个设置正常工作,但没有运气。例如,我尝试了以下两种方法:注意,我刚开始学习 JavaScript,我使用 C#,但这是我第一次尝试做类似的事情,我可能完全不感兴趣。任何帮助将不胜感激。

<html>
    <head>
        <title>Open PMETL</title>
        <script type="text/javascript">
        function runProgram()
        {
            try {           
                var shell = new ActiveXObject("WScript.Shell");                 
                var myPMETL="http://trudat.live/RefreshData.exe";
                shell.Run(myPMETL);
                }
            catch (e) {
                alert(e.message);
            }

        }        

        function runProgram02() {           
            if (window.ActiveXObject) {
                try {
                    var excelApp = new ActiveXObject ("Excel.Application");
                    excelApp.Visible = true;
                    }
                catch (e) {
                alert (e.message);
                }       
            }
                else {
                alert ("Your browser does not support this example.");
                }
        }
        </script>
    </head>
    <body>
       <a href="javascript:runProgram()">Run program</a>    
       <a href="javascript:runProgram02()">Run program02</a>
    </body>
</html>

【问题讨论】:

  • 您知道 javascript 在客户端(即在您的浏览器中)运行,对吧?这两个都是 javascript,它们都将尝试在客户端运行(假设您用于访问页面的浏览器启用了 javascript),并且可能仅在 Internet Explorer 中运行。
  • 您的托管公司可能希望您从服务器调用 URL,而不是从浏览器调用。直接从客户端调用something.com/foo/bar.exe 似乎是个坏主意。你问过他们的例子吗?
  • 谢谢各位,我知道JavaScript会在客户端运行,但我不知道如何只使用服务器运行一个url。例如,我问他们拒绝了,我得到这样的答案“对不起,您需要开发一个 url 来调用 .exe 文件”“请注意,您要运行的任务应该是一个链接。请开发完成后在此处提供给我们”。我最初对他们的要求是直接使用 Windows 任务运行 exe 文件。
  • 我认为你应该写一些后端c#代码来运行exe文件,你可以在页面加载方法中编写这段代码,这样每次url点击它都会运行代码。

标签: javascript c# php .net shared-hosting


【解决方案1】:

我能够通过向我的 ASP.NET 应用程序添加一个新页面并将控制台应用程序移植到代码隐藏 C# 中并通过 Page_Load() 方法调用代码来实现这一点。这允许我给托管公司一个类似http://mydomain/ExePage.aspx 的 URL,而不会影响我的原始应用程序,因为无法从应用程序的菜单访问这个新页面。这是一种方便的方式来满足我的需要。 我认为这不是一个典型的解决方案,因为我有优势拥有 EXE 程序的源代码,但它仍然是一个非常有效的解决方案,这可能对将来的某人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-15
    • 1970-01-01
    • 2016-08-02
    • 1970-01-01
    相关资源
    最近更新 更多