好的,我先给你上下文。
- 我在 IIS 7 中部署了一个网站。
- 在服务器上,我安装了 windows Mapr Client。这使我可以访问 Windows 系统上的 hadoop 集群。(Windows MAPR 客户端安装)
- 我已经登录并检查了 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 ?