c# - 从 WCF 服务派生的进程变得空闲

标签 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"

从 Batchfile 调用的应用程序在 15-20 秒(不定)后变为空闲状态。当我 checkin Process Explorer 时, fork 进程可用,但 CPU 时间在 15-20 秒后没有变化。我什至已经离开了一天,但仍然没有超时或进程完成。

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

我只能想到两种可能性

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

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

最佳答案

1,你指定了 RedirectStandardOutput,但你实际上并没有读取它的输出,所以它可能正在等待它的发生。

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

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

关于c# - 从 WCF 服务派生的进程变得空闲,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20487906/

相关文章:

c# - 我怎样才能移动粘性/捕捉 wpf 窗口

c# - WIX 中的托管 (C#) 自定义操作不起作用(错误代码 1154)

Android Json结果处理

c - 具有 3 个元素的信号量

unix - 如何杀死容器内的进程? Docker 顶部命令

c# - 获取进程的所有窗口句柄

c# - 命令行参数中的空格

c# - 列表框选择器在存在欺骗时的奇怪行为

wcf - 如何捕获 WCF Web 服务的原始 SOAP 请求

c# - WCF Duplex - 如何找到客户端的回调 URL?