【发布时间】:2012-12-18 16:14:27
【问题描述】:
我有一个 Azure 辅助角色,它生成另一个进程 (System.Diagnostics.Process) 以在虚拟机中执行 *.exe 文件。
问题是这个执行在几分钟后失败,没有任何异常。
我尝试登录虚拟机并从命令行启动可执行文件,它工作正常。
可执行文件是一个 Fortran 程序,它分配所有将在执行开始时使用的内存。
这是启动该过程的代码:
Process p = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo(strPath, strArguments);
startInfo.WorkingDirectory = strDir;
p.StartInfo = startInfo;
p.Start();
p.WaitForExit();
程序启动、执行一些工作并意外结束。关于什么可能会扼杀这个过程的任何想法?
【问题讨论】:
-
您在工作人员角色的哪个部分调用此代码?
-
worker 角色每 60 秒检查一次队列(在 Run 方法中),如果有消息则启动此过程
-
这里没有足够的信息来说明发生了什么问题,因此您应该尝试收集更多信息。如果程序有任何日志记录,请检查或配置它。还可以尝试检查 Windows 事件日志。如果程序将错误写入 StandardOutput 和/或 StandardError,那么也尝试捕获这些错误。 here 有一个很好的代码示例。