C#Process cmd.exe-';hadoop';未被识别为内部或外部命令、可操作程序或批处理文件

C#Process cmd.exe-';hadoop';未被识别为内部或外部命令、可操作程序或批处理文件,c#,iis,cmd,local-system-account,C#,Iis,Cmd,Local System Account,好的,我先给你讲讲上下文 我在IIS 7中部署了一个网站 在服务器上,我安装了windows Mapr客户端。这使我能够访问windows系统上的hadoop集群。() 我已登录并检查hadoop客户端是否正常工作 所以现在问题来了 我使用C#Process和ProcessStartInfo类打开cmd.exe的一个实例,从hadoop服务器获取文件,并使其在UI上可访问。(hadoop fs-get…)。 但由于某些原因,我从process.StandardError收集的错误返回以下错误:

好的,我先给你讲讲上下文

  • 我在IIS 7中部署了一个网站
  • 在服务器上,我安装了windows Mapr客户端。这使我能够访问windows系统上的hadoop集群。()
  • 我已登录并检查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命令不能被这个高权限用户识别

    更新:

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

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


    所以问题是,它实际启动的cmd版本是什么?说到版本,我指的是没有安装任何东西的cmd?

    32位进程查找

    • 请求c:\windows\syswow64时使用c:\windows\System32

    • 请求c:\windows\sysnative时使用c:\windows\system32

    和64位进程查找

    • 请求c:\windows\system32时使用c:\windows\system32

    • 请求c:\windows\syswow64时使用c:\windows\syswow64

    • 请求c:\windows\sysnative时生成错误


    我甚至不确定这是32位还是64位问题。