【问题标题】:What causes a 40 second delay when running an executable using Process.Start()?使用 Process.Start() 运行可执行文件时导致 40 秒延迟的原因是什么?
【发布时间】:2011-02-07 16:05:02
【问题描述】:

我正在使用来自 ASP.NET Web 应用程序的 Process.Start() 在本地文件系统上运行可执行文件。这可以正确运行并且符合我的预期,问题是在调用 Process.Start() 之后,exe 启动大约需要 40 秒。

当我从命令行运行 exe 时,只需几秒钟即可完成工作。

有谁知道我使用 Process.Start() 时导致这种长时间延迟的原因是什么?

提前致谢!

罗伯特

【问题讨论】:

  • 看起来很奇怪......你开始做什么?如果您检查进程列表,您是否看到进程按调用方式运行并且它在 40 秒内什么都不做?我怀疑运行您从其他帐户运行的任何进程都存在问题。
  • 从 ASP.NET 网页启动应用程序听起来很危险。我可以想象这 40 秒是为用于启动应用程序的用户设置桌面环境。另一方面,只有通过分析,您才能确定原因是什么。
  • @Brad 我正在安全网站上运行 wkhtmltopdf PDF 生成器。我可以立即看到程序在任务管理器中运行,但它实际上并没有做任何工作,大约 40 秒然后按预期执行。
  • @Uwe 我同意你关于安全问题的观点。我的计划是使用权限尽可能少的帐户运行该过程。该功能不会公开提供,只有网站的管理员用户才能运行它。
  • 程序可能正在尝试访问互联网并在 40 秒后放弃。您可以使用监控工具进行检查。也许是商业物品或检查更新。

标签: c# asp.net


【解决方案1】:

该问题似乎是由于尝试使用 Web 应用程序的默认工作进程帐户运行 exe 引起的。我已更新 ProcessStartInfo 以使用在服务器上具有受限权限的预定义用户帐户,并且该 exe 几乎立即运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-14
    • 1970-01-01
    • 2021-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-28
    相关资源
    最近更新 更多