几天后,从azure worker角色开始的进程失败

时间:2012-12-18 16:14:28

标签: azure azure-worker-roles

我有一个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();

程序启动,做一些工作并意外结束。关于什么可能会杀死这个过程的任何想法?

1 个答案:

答案 0 :(得分:4)

我发现了问题。

重定向输出我已经能够看到应用程序因“磁盘空间不足”而失败。错误,即使我有足够的磁盘空间。问题是应用程序在执行期间创建临时文件,托管服务的临时目录运行空间。我认为这个目录的最大大小为100 MB。

解决方案是在服务定义中配置新的本地存储,并在RoleEntryPoint.OnStart方法(http://msdn.microsoft.com/en-us/library/windowsazure/hh134851.aspx)上将TMP和TEMP环境变量设置为此本地存储。