【问题标题】:Running an .exe from a website从网站运行 .exe
【发布时间】:2011-01-06 00:11:44
【问题描述】:

我创建了一个 exe 文件,用于在我的服务器上进行一些维护工作。 我希望能够从服务器上的网站启动它。 exe 必须在服务器本身而不是客户端上启动。

我的直觉告诉我这是不可能的,但我不得不和你们核实一下。

如果我需要设置某些权限/安全性 - 我可以。

【问题讨论】:

    标签: c# .net iis executable


    【解决方案1】:

    一个非常粗略的选项,假设 IIS:将执行访问权限从“仅脚本”或“无”更改为“脚本和可执行文件”

    为了不那么粗糙,你应该让可执行文件实现一个 CGI 接口(如果它在你的控制之下。

    而且,如果您想使用 ASP.NET 添加自动/身份验证,执行此操作的代码 (C#) 将是:

    System.Diagnostics.Process process;
    
    var startInfo = New System.Diagnostics.ProcessStartInfo("C:\file.exe")
    
    process.StartInfo = startInfo;
    process.Start();
    process.WaitForExit();
    

    【讨论】:

    • 会像从远程桌面运行一样执行 exe 吗?
    • Faruz:不,它会在运行IIS的用户下执行;但是是的,它将在服务器上运行(显然)。
    • @Frauz:你可以打开“模拟”来实现。
    【解决方案2】:

    这是可能的,但几乎可以肯定这是一个坏主意。什么环境/网络服务器?您应该只需要为文件设置相关的“执行”权限。

    但是,我真的建议您不要这样做,并将任务配置为在后台自动运行。原因是,如果配置不当,您最终可能会让人们运行任何可执行文件,并根据其他因素完全接管您的机器。

    【讨论】:

      【解决方案3】:

      取决于您使用的语言;大多数服务器端脚本语言都为您提供了一种执行 shell 命令的方法,例如:

      $result=`wc -l /etc/passwd`;
      

      从 perl 执行一个 unix 命令。

      【讨论】:

      • 通常有一个函数叫做system 或者在回答中反引号
      【解决方案4】:

      大多数网络语言(我至少知道 Java 和 PHP)都允许您在程序中执行命令行参数。

      【讨论】:

        【解决方案5】:

        可以,但是不推荐。

        运行维护脚本/可执行文件的理想解决方案是在 Unix/Linux 系统上使用 cron 或在 Windows 中使用计划任务来安排它们。自动化方法与远程手动启动相比的一些优势:

        • 服务器计算机是自我维护的。客户可能会失败,人们可能会忘记。只要服务器正在运行,服务器就会保持最新状态,而不管客户端机器或人员的状态如何。
        • 什么时候启动可执行文件?每次访问某个页面?如果页面被刷新了怎么办?对于资源密集型脚本/可执行文件,这会严重降低服务器性能。您需要编写规则来处理多个请求并监控正在运行的维护过程。 Cron 和计划任务已经处理了这些可能性。

        【讨论】:

        • 这是一个计划任务,但我希望在某些情况下能够远程启动它。属于特例,不会正常使用。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-18
        • 2015-09-30
        • 2011-03-10
        相关资源
        最近更新 更多