Назад | Перейти на главную страницу

запуск процесса из IIS7

У меня есть Windows 2008 под управлением IIS7. На сервере размещено приложение ASP.NET, которому абсолютно необходимо запустить внешний процесс - исполняемый файл, расположенный на этом же компьютере.

Эта установка отлично работает на сервере разработки ASP.NET, но полностью не работает, когда задействован IIS. Все перепробовал: доработал machine.config файл, изменение идентификатора пула приложений приложения, игра с разрешениями файлов и папок, изменение настроек на вкладке службы «Вход в систему» ​​... ничего не работает.

Неважно, какой исполняемый файл я пытаюсь запустить. Даже "notepad.exe" не работает.

Я, наверное, что-то упускаю, потому что такая тривиальная задача не должна быть такой сложной. Да, мне известно о последствиях того, что я пытаюсь сделать, для безопасности, но в данном случае другого пути просто нет.

Заранее спасибо.

Проверьте удостоверение пула приложений и удостоверение анонимного пользователя на сайте. Для сайта, если вы настроите анонимного пользователя на использование идентификатора пула приложений, это упростит работу, если вы не используете общий пул приложений между ненадежными сайтами. Протестируйте с администратором и убедитесь, что UAC не борется с вами. Обязательно вернитесь к индивидуальному пользователю после тестирования.

Другая возможная проблема может быть связана с тем, как профиль пользователя загружается из IIS. В расширенных настройках пула приложений поэкспериментируйте с «Загрузить профиль пользователя».

Еще можно попробовать запустить приложение через cmd.exe. Например:

var p = new Process();
string command = "notepad.exe";
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.WorkingDirectory = "valid working directory";
p.StartInfo.Arguments = String.Format("/C {0}", command);