1

从 .net 运行多个进程时,我无法读取进程的输出。一个例子是“netsh”命令。

我正在尝试从 dhcp 服务器读取所有范围。

它仅在 Web 应用程序和单元测试中失败。

在下面的代码中,“消息”是一个空字符串。

var arguments = @"-r myDhcpServer.myDomain dhcp server \\myDhcpServer.myDomain show scope";
var startInfo = new ProcessStartInfo("netsh", arguments)
{
    CreateNoWindow = true,
    UseShellExecute = false,
    RedirectStandardOutput = true
};

using (var cmdProcess = Process.Start(startInfo))
{
    var message = cmdProcess.StandardOutput.ReadToEnd();
    Debug.WriteLine(message);
    cmdProcess.WaitForExit();
}

几点

  • 在 VS 2008 上运行 .net 3.5
  • 在网络应用程序中失败,即卡西尼
  • 单元测试失败(使用 resharper)
  • 从控制台应用程序工作
  • 从 Windows 应用程序工作
  • 从命令行工作
  • 曾经在 Windows XP 中工作
  • 我试过关闭 UAC
  • 其他命令有效。例如 ipconfig
  • 我试过以管理员身份运行 VS
  • 是的,我知道还有其他方法可以做到这一点,并且正在研究它们。但我仍然想知道为什么流程方法不起作用。

编辑:

原来它只在windows 7 64bit上

MS Premier 支持已经复制了该问题,并正在研究解决方案/解决方法。

4

0 回答 0