Хорошо, я дам вам контекст в первую очередь.C# Process cmd.exe - 'hadoop' не распознается как внутренняя или внешняя команда, операционная программа или командный файл
- У меня есть веб-сайт развернут в IIS 7.
- На сервере, я установил окна Mapr Client. Это дает мне доступ к кланам хаопов в системе Windows. (Windows MAPR client installation)
- Я пришел в систему и проверил, что клиент hadoop работает исправно.
Так что теперь проблема.
Я использую классы C# Process и ProcessStartInfo для открытия экземпляра cmd.exe, где я получаю файл с сервера hadoop и делаю его доступным в пользовательском интерфейсе. (hasoop fs -get .....). Но по какой-то причине, то ошибка, что я собрал из process.StandardError возвращает ошибку ниже:
«Hadoop» не распознается как внутренней или внешней командой, исполняемой программой или пакетным файлом.
Я проверил, что пользователь, выполняющий процесс cmd, является одним из администраторов сервера.
Замечания: Рабочий каталог командной строки: «C: \ Windows \ SysWOW64 \ inetsrv». Означает ли это его 32-разрядный cmd? Может быть, причина в том, что хаоп не признан? Я думал о том, чтобы воспроизвести проблему. (открытие 32-битной подсказки cmd и ввода hadoop для этого пользователя-администратора. Но команда hadoop успешно работала)
Я не понимаю, почему команда hadoop не распознается для этого пользователя с высокими привилегиями.
UPDATE:
Это, как представляется, подобная проблема. Я попробую и дам вам знать.
Process.Start cmd.exe won't run cmd file that is passed as agument when running in IIS
ОК это не та же самая проблема. Поскольку я могу открыть и запустить пакетный файл. Но cmd не распознает команды, которые я установил.
Итак, вопрос в том, какая версия cmd на самом деле начинается? По версии, я имею в виду CMD, который не имеет ничего установленного в нем?
Я даже не уверен, что это проблема с 32-разрядной или 64-разрядной версией. – UnitedSince88