从WCF服务分叉的进程正在变得空闲

时间:2013-12-10 06:45:51

标签: c# wcf process

我面临一个奇怪的问题。在我的WCF服务中,我调用将调用应用程序的批处理文件。

                ProcessStartInfo appInfo= new ProcessStartInfo("runApp.bat");

                appInfo.RedirectStandardOutput = true;
                appInfo.UseShellExecute = false;
                appInfo.CreateNoWindow = true;

                app.StartInfo = appInfo;
                app.Start();
                app.WaitForExit();

批处理文件:                 app.exe" path_of_the_file_needs_to_be_processes_as_argument"

在说15-20秒(变化)之后,从Batchfile调用的应用程序变得空闲。当我检查Process Explorer时,分叉进程可用,但CPU时间在15-20秒后没有移动。我甚至离开了这一天,仍然没有超时或过程完成。

当我单独执行批处理文件时,应用程序运行并正确完成。

我只能想到两种可能性

1)由于某种超时(但没有例外或任何其他指示),WCF服务在一段时间后放弃了该过程 2)我从批处理文件调用的应用程序以有限的权限执行。因为当我看到应用程序日志时,我注意到应用程序冻结在应该将文件写入主机PC的位置。

注意:我甚至尝试直接调用app.exe作为进程,而不是使用批处理文件。结果完全相同。

1 个答案:

答案 0 :(得分:1)

1,您指定RedirectStandardOutput,但实际上并没有读取它的输出,因此可能正在等待它发生。

2,首先尝试使用可见窗口运行它以查看会发生什么。

3,尝试运行cmd.exe /c full_path_to\runapp.bat