【发布时间】:2012-02-06 17:45:45
【问题描述】:
我有一个控制台应用程序,它写入从数据库检索到的 txt 文件信息。到目前为止,我手动执行控制台应用程序生成的可执行文件。
现在我需要从我的 Web 应用程序中自动调用 .exe,以便每次在我的代码中发生特定情况时,我都可以使用逻辑“即发即弃”来运行 .exe。
我的目标是:
1) 用户不得受到控制台应用程序执行的任何影响(SQL 查询和 txt 文件生成可能需要大约 3 到 5 分钟),因此“一劳永逸”的逻辑委托给一个单独的进程。
2) 由于在某些情况下仍会手动运行可执行文件,因此我希望将所有逻辑放在一个位置,以避免出现不同行为的风险。
我可以安全地使用 System.Diagnostics.Process 来实现这一目标吗?
System.Diagnostics.Process cmd = new System.Diagnostics.Process();
cmd.Start("Logger.exe");
该过程是自动结束还是我必须设置超时并明确关闭它?
在不同用户访问 Web 应用程序的 Web 应用程序环境中是否“安全”,让他们调用可执行文件而没有并发访问的风险?
谢谢。
编辑: 更改为使用内置类更清晰,感谢提示。
【问题讨论】:
-
CommandLineProcess 似乎是一些自定义类。在提问时考虑使用内置类,或者至少提供对文档/源的参考。
标签: c# web-applications executable code-behind