代码之家  ›  专栏  ›  技术社区  ›  Faruz

从网站运行.exe

  •  4
  • Faruz  · 技术社区  · 15 年前

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

    我的直觉告诉我这是不可能的,但我必须和你们确认一下。

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

    5 回复  |  直到 11 年前
        1
  •  1
  •   John Gietzen    15 年前

    一个非常粗糙的选项,假设是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();
    
        2
  •  3
  •   leepowers    15 年前

    可以,但不建议这样做。

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

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

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

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

        4
  •  1
  •   Erik    15 年前

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

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

    从Perl执行了一个Unix命令。

        5
  •  0
  •   Kaleb Brasee    15 年前

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