C#Process cmd.exe - 'hadoop'无法识别为内部或外部命令,可运行程序或批处理文件

时间:2015-03-23 23:30:00

标签: c# iis cmd local-system-account

好的,我会先给你上下文。

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

    我正在使用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 won't run cmd file that is passed as agument when running in IIS

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

    所以问题是,它实际开始的cmd版本是什么?按版本,我的意思是没有安装任何东西的cmd?

1 个答案:

答案 0 :(得分:0)

32位进程在

中查找
    在询问c:\ windows \ System32

    时,
  • c:\ windows \ syswow64 在询问c:\ windows \ sysnative

  • 时,
  • c:\ windows \ system32

和64位进程在

中查找
    在询问c:\ windows \ system32

    时,
  • c:\ windows \ system32 在询问c:\ windows \ syswow64

  • 时,
  • c:\ windows \ syswow64

  • 在要求c:\ windows \ sysnative

  • 时生成错误