1

仮想マシンで *.exe ファイルを実行するための別のプロセス (System.Diagnostics.Process) を生成する Azure Worker ロールがあります。

問題は、この実行が数分後に例外なしで失敗することです。

仮想マシンにログインして、コマンド ラインから実行可能ファイルを起動しようとしましたが、正常に動作します。

実行可能ファイルは、実行開始時に使用するすべてのメモリを割り当てる Fortran プログラムです。

プロセスを開始するコードは次のとおりです。

Process p = new Process();

ProcessStartInfo startInfo = new ProcessStartInfo(strPath, strArguments);

startInfo.WorkingDirectory = strDir;

p.StartInfo = startInfo;

p.Start();

p.WaitForExit();

プログラムが開始され、何らかの作業が行われ、予期せず終了します。このプロセスを殺している可能性のあるものについてのアイデアはありますか?

4

1 に答える 1

4

問題が見つかりました。

出力のリダイレクト 「ディスクに十分なスペースがありません」が原因でアプリケーションが失敗したことを確認できました。十分なディスク容量があるにもかかわらず、エラーが発生しました。問題は、アプリケーションが実行中に一時ファイルを作成し、ホストされたサービスの一時ディレクトリがスペースを使い果たすことです。このディレクトリの最大サイズは 100 MB だと思います。

解決策は、サービス定義で新しいローカル ストレージを構成し、RoleEntryPoint.OnStart メソッドで TMP および TEMP 環境変数をこのローカル ストレージに設定することです ( http://msdn.microsoft.com/en-us/library/windowsazure/ hh134851.aspx )。

于 2012-12-20T08:50:15.403 に答える