C# IIS承载的WCF服务无法启动进程
我在服务器上有一个WCF服务,当我从客户端应用程序发送请求时,该服务将运行一个与网络节点通信的进程,该进程在我的服务中是至关重要的,如果它不运行整个服务,则该服务将毫无用处。问题是此进程从未运行:( 我已经阅读了大约两天的解决方案,但没有一个对我有帮助,我已经授予服务管理员权限,并检查.exe文件路径是否正确。这是我的代码。任何帮助都将不胜感激C# IIS承载的WCF服务无法启动进程,c#,wcf,iis,process,C#,Wcf,Iis,Process,我在服务器上有一个WCF服务,当我从客户端应用程序发送请求时,该服务将运行一个与网络节点通信的进程,该进程在我的服务中是至关重要的,如果它不运行整个服务,则该服务将毫无用处。问题是此进程从未运行:( 我已经阅读了大约两天的解决方案,但没有一个对我有帮助,我已经授予服务管理员权限,并检查.exe文件路径是否正确。这是我的代码。任何帮助都将不胜感激 try { myprocess.StartInfo.UseShellExecute = false;
try
{
myprocess.StartInfo.UseShellExecute = false;
myprocess.StartInfo.CreateNoWindow = true;
myprocess.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
myprocess.StartInfo.RedirectStandardOutput = true;
myprocess.StartInfo.FileName = myprocessPathAndName;
myprocess.StartInfo.WorkingDirectory =
Path.GetDirectoryName(myprocessPathAndName);
myprocess.StartInfo.Arguments = ConfigName;
myprocess.Start();
Log("myprocess Runnig " , sw);
Log(myprocessPathAndName, sw);
Log(myprocess.StartInfo.WorkingDirectory, sw);
}
catch (Exception e)
{
Log("Failed to run myprocess : " + e.Message, sw);
}
这是日志
7/26/2017 4:05:15 AM : myprocessRunnig
7/26/2017 4:05:15 AM : C:\inetpub\wwwroot\Station\COM\Dn\myprocess.exe
7/26/2017 4:05:15 AM : C:\inetpub\wwwroot\Station\COM\Dn
第一:
检查myprocess.Start()
方法调用的返回值。如果进程已成功启动,它将返回true
。记录返回值
第二:(你可能已经这样做了)
流程启动后,您应该有一个等待调用,等待流程运行并完成
第三:
如何确定流程尚未启动?是否可以在任务管理器中检查流程?流程可能正在启动并失败。流程是否创建了日志?是否检查了事件日志
第四:
您的进程是否有任何UI组件?请注意,当作为服务(在Windows Vista和更高版本中)运行时,该服务无法显示UI。它只会挂起
第五:
您是否能够使用与服务相同的用户ID手动运行流程?您可以使用RunAs
或PsExec
在适当的用户ID下运行流程
第六:
您还可以重定向标准错误并从中读取,以查看您的进程是否写入了任何异常
e、 g
您可以记录结果并进行检查
第七:
您还应该记录流程的退出代码
process.WaitForExit();
var exitCode = process.ExitCode;
亲爱的Subbu,实际上,您的第六个建议帮助我找出了这个问题的原因。我添加了myprocess.StartInfo.RedirectStandardOutput=true;根据返回值,我发现缺少一个配置文件,无法启动我的流程!非常感谢
process.WaitForExit();
var exitCode = process.ExitCode;