从网站运行.exe

时间:2010-01-17 05:20:50

标签: c# .net iis executable

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

我的直觉告诉我这是不可能的,但我必须和你们一起检查。

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

5 个答案:

答案 0 :(得分:3)

是的,可以这样做,但不建议这样做。

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

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

答案 1 :(得分: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();

答案 2 :(得分:1)

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

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

答案 3 :(得分:1)

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

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

从perl执行了一个unix命令。

答案 4 :(得分:0)

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