Просто чтобы добавить к другим 2 ответам - Вам действительно нужно запустить exe-файл с вашего веб-сервера?
Мне приходилось делать это в прошлом, и это почти всегда вариант последней инстанции - он значительно ослабляет вашу безопасность (теперь все, что нужно сделать для запуска исполняемых файлов в вашей системе, - это найти один недостаток в вашем коде) и имеет целый ряд других проблем (веб-сервер не «вошел» на сервер, поэтому у него нет рабочего стола, олицетворение - настоящая боль в $$, чтобы работать должным образом (если вы собираетесь запустить исполняемый файл с разными разрешениями на веб-сервере) и т. д.
Если есть какой-то другой способ достичь вашей цели, это почти наверняка будет проще.
Мы решили использовать новое приложение с конечной точкой WCF, с которой веб-сервер может взаимодействовать. Таким образом, когда кто-то нажимает кнопку, WS вызывает наше приложение через WCF и говорит ему запускать различные команды. Таким образом, вы получите:
- Очистить разделение между кодом сети и консоли.
- Изворотливое консольное приложение не отключит веб-сервер и наоборот
- Если консольное приложение работает долго, это позволяет вам разбить ваши выпуски для веб-сайта / консольного приложения, чтобы вы не убивали приложение во время его исполнения только потому, что вам нужно обновить некоторые CSS и публиковать.
- Огромные преимущества безопасности - веб-сервер не может запускать исполняемые файлы, даже если скомпрометирован.
- Приложение WCF сможет внимательно изучить запросы, чтобы определить, действительны ли они до выполнения.
Имейте в виду, что, как бы вы это ни делали, если кто-то злонамеренно определит, что происходит, и сможет запустить процесс, он, вероятно, сможет сделать это практически без усилий. Убедитесь, что этот метод заблокирован TIGHT.
Редактировать: прочитав ваши комментарии выше, я думаю, что вы столкнулись с проблемой "рабочего стола". При запуске исполняемого файла с сервера приложение никогда не будет видимо вошедшему в систему пользователю, поскольку рабочий стол вошедшего в систему пользователя недоступен из IIS и наоборот. Это очень похоже на проблему наличия графического интерфейса в службе Windows.
Это также может представлять интерес.