Почему мой веб-сервис ASP.NET не может запустить процесс, а мое консольное приложение .NET может?
Это код из библиотеки классов:
proc.StartInfo = new ProcessStartInfo(CmdPath, "+an -b"); proc.StartInfo.RedirectStandardOutput = true; proc.StartInfo.CreateNoWindow = true; proc.StartInfo.UseShellExecute = false; proc.Start(); proc.WaitForExit();
Это работает отлично, как и следовало ожидать, когда вызывается из консольного тестового приложения. Когда я беру ту же библиотеку и вызываю метод из веб-службы ASP .NET, она просто зависает.
Что-то мне здесь не хватает, возможно, разрешения? Служба ASPNET имеет доступ к папке, в которой находится EXE, и я вижу, что она работает в диспетчере задач, хотя это не так.ничего не делаю.
Если кто-нибудь может сказать мне, что яЯ делаю неправильно, я был бы признателен. Благодарю.
РЕДАКТИРОВАТЬИзвините за недостаток информации. CmdPath идет к интерфейсу командной строки для нашего программного обеспечения планирования. Я'м передачи команд на основе документации, которую они предоставили. У меня есть один метод, чтобы получить список заданий, и другой метод, чтобы запустить задание. ... хм идея. Клиент обычно использует Active Directory для входа в систему, я думаю, что олицетворение будет необходимо. Собираюсь сейчас проверить.
РЕДАКТИРОВАТЬ 2Хорошо, теперь клиент взорван проблемами AccessViolation. Это, очевидно, вещь разрешений. Если в программном обеспечении используется встроенная авторизация AD, и я олицетворяю свою учетную запись AD, будет ли этого достаточно? Я'я делаю олицетворение, используя тег в web.config.