从ASP.Net产生子进程失败

时间:2018-06-28 09:27:57

标签: c# asp.net .net process

我正在尝试在传入请求中在ASP.Net中生成一个新进程。新过程不会执行。它甚至不会在ErrorDataReceived事件中引发错误。但是,与此同时,如果我明确提供凭据,则可以正常工作。我提供的证书与应用程序池中配置的证书相同。

再一次观察,子进程的执行仅在基于控制台的应用程序(即systeminfo等)下才会失败。但是,如果它是WinForm应用程序(即calc.exe),则工作正常。当然,我无法在屏幕上看到计算器,但是可以在ProcessExplorer的w3wp.exe下看到子进程calc.exe。

有效的示例代码-

var startInfo = new ProcessStartInfo(cmd)
{
     RedirectStandardError = true,
     RedirectStandardOutput = true,
     UseShellExecute = false,
     Arguments = arguments,
     Domain = "mydomain",
     UserName = "appPoolUser",
};
startInfo.Password = new SecureString();
foreach (char ps in password)
  startInfo.Password.AppendChar(ps);

var process = new Process()
{
    StartInfo = startInfo,
    EnableRaisingEvents = true
};
process.Start();

如果我删除凭据,它将无法正常工作。

那么,为什么如果我们提供与父流程中配置的凭据相同的凭据,那么为什么无法使用父流程的令牌执行流程呢?

0 个答案:

没有答案