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

Как разрешить пользователю веб-сайта IIS запускать программу .cmd

У меня возникла ситуация, когда мне нужно запустить программу .cmd на моем веб-сайте IIS. Это сторонняя программа для проверки и передачи файлов, поэтому я не могу выбрать иное.

Я делаю это, программно запуская программу в новом процессе.

Использование этого подхода с файлом .exe отлично работает. Я получаю стандартный вывод от программы. Но это совсем не тот случай, когда я пытаюсь сделать то же самое с файлом .cmd. Стандартный вывод не получен.

Код отлично работает на моем локальном компьютере, поэтому я полагаю, что проблема заключается в конфигурации IIS. Возможно ограничения пользователя или файла.

Может ли кто-нибудь направить меня в правильном направлении?

РЕДАКТИРОВАТЬ Вот код C #, который я использую.

    ProcessStartInfo info = new ProcessStartInfo(); 
    info.WindowStyle = ProcessWindowStyle.Hidden; 
    info.CreateNoWindow = true;
    info.FileName = AppDomain.CurrentDomain.BaseDirectory + @"export\foo.cmd"; 
    //replacing foo.cmd with foo.exe works
    info.UseShellExecute = false; 
    info.RedirectStandardOutput = true; 
    using (Process process = Process.Start(info)) 
    { 
        using (StreamReader reader = process.StandardOutput) 
        {
            string result = reader.ReadToEnd();
            Response.Write(result);
        }
    }

Я сам нашел решение. Я опубликовал свои выводы на Переполнение стека.

На самом деле это оказалось проблемой пользователя IIS AppPool, поэтому размещение вопроса здесь не было полностью безнадежным.