【问题标题】:start batch job from IIS从 IIS 启动批处理作业
【发布时间】:2010-10-28 11:54:27
【问题描述】:

当用户(经过身份验证的域管理员)应该能够从 IIS (7.x) aspx (c#) 页面启动批处理作业(通常是 exe 文件)时,正确的方法是什么?这是一个内部网站。批处理作业必须作为域管理员在 Web 服务器上运行。网站池由网络服务或AD中的一些类似的受限帐户执行。

我能想到的方法(以及它们的缺点): 1. 使用 System.Diagnostics.Process.Start 使用另一个帐户启动 exe 文件。此功能在 IIS 7.x 中被禁用,我该如何允许它? 2、创建定时任务,调用定时任务-api。这个非托管 dll 给 VS 编译器警告,因为从托管代码调用是不安全的。 3. 我想有更好的方法,因为之前的建议看起来并不安全或可靠。

【问题讨论】:

    标签: asp.net iis iis-7.5


    【解决方案1】:

    我建议您使用计划任务或 Windows 服务来轮询公共存储库以查看是否应该运行批处理作业 - 因为批处理作业通常用于长时间运行的进程。

    您可以将要从 ASP.NET 网站运行的批处理文件和参数的详细信息保存到数据库(MySQL、Oracle、SQL Server 等)中,然后让您的 Windows 服务/计划任务轮询该数据库定期。

    【讨论】:

    • 很好的答案,谢谢。如果批处理作业应该在另一台服务器上执行,则从 Windows 服务轮询数据库也可以证明应用程序的未来。
    • 我支持这个答案,因为从 IIS 运行批处理/可执行文件通常是个坏主意。它可能会损害安全性、稳定性和性能。如果您在一个单独的过程中执行实际工作,该过程还控制允许或禁止哪些操作,那么您就更省事了。
    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-09
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-12
      相关资源
      最近更新 更多