1

好的,我先给你上下文。

  1. 我在 IIS 7 中部署了一个网站。
  2. 在服务器上,我安装了 windows Mapr Client。这使我可以访问 Windows 系统上的 hadoop 集群。(Windows MAPR 客户端安装
  3. 我已经登录并检查了 hadoop 客户端是否正常工作。

所以现在的问题。

我正在使用 C# Process 和 ProcessStartInfo 类打开 cmd.exe 的实例,我从 hadoop 服务器获取文件并使其在 UI 上可访问。(hadoop fs -get .....)。但由于某种原因,我从 process.StandardError 收集的错误返回以下错误:

'hadoop' 不是内部或外部命令、可运行程序或批处理文件。

我检查了运行 cmd 进程的用户是服务器的管理员之一。

注意事项:命令提示符工作目录是'C:\Windows\SysWOW64\inetsrv'。这是否意味着它是 32 位 cmd ?这可能是hadoop不被识别的原因吗?我想复制这个问题。(打开 32 位 cmd 提示符并为该管理员用户键入 hadoop。但 hadoop 命令成功运行)

我在这里不明白为什么这个高特权用户无法识别 hadoop 命令。

更新:

这似乎是一个类似的问题。我会试一试,让你知道。

Process.Start cmd.exe 在 IIS 中运行时不会运行作为 agument 传递的 cmd 文件

好的,这不是同一个问题。因为我能够打开并运行批处理文件。但是 cmd 无法识别我安装的命令。

所以问题是,它实际启动的是什么版本的 cmd ?通过版本,我的意思是没有安装任何东西的 cmd ?

4

1 回答 1

0

32位进程查看

  • c:\windows\syswow64 在询问 c:\windows\System32 时

  • c:\windows\system32 询问 c:\windows\sysnative 时

和 64 位进程查看

  • c:\windows\system32 当要求 c:\windows\system32

  • c:\windows\syswow64 当要求 c:\windows\syswow64

  • 询问 c:\windows\sysnative 时生成错误

于 2015-03-24T00:55:56.553 回答