Process.Start для любого exe иногда дает сбой на IIS - PullRequest
0 голосов
/ 03 апреля 2019

У нас есть код ASP.Net, работающий на IIS (Windows Server 2016).Наш код Asp.Net запускает внешний exe.Обычно все работает.Но иногда exe не запускается.Когда это происходит, только полная перезагрузка компьютера решает проблему.

Я написал тестовый код для запуска просто notepad.exe.Он будет работать некоторое время и запустит notepad.exe, когда нам нужно.Опять через некоторое время не удается запустить notepad.exe, и все непрерывные вызовы не будут выполнены.Перезапуск IIS не поможет.Перезагрузка ПК решит проблему.

  ProcessStartInfo processStartInfo =
    new ProcessStartInfo(@"C:\Windows\notepad.exe");

   Process process = new Process();
   process.StartInfo = processStartInfo;
   process.Start()

Я ожидаю, что notepad.exe начнет работать каждый раз.Или, по крайней мере, если это не удается, получите какое-то значимое исключение с описанием, почему это не удалось.Мне интересно, может быть, это какая-то защита IIS DoS.Наше приложение требует значительных ресурсов, и эта ошибка возникает после многих часов работы веб-сайта.

1 Ответ

0 голосов
/ 03 апреля 2019

Использование Notepad.exe - плохой пример для тестирования, поскольку в нем есть компоненты пользовательского интерфейса, надеюсь, что ваш external.exe этого не делает.

IIS не имеет никакой защиты типа «DoS», как вы описали.

Я бы попробовал две вещи: 1) Process.Start () возвращает логическое значение. Если возвращается значение false, добавьте в журнал некоторую информацию об ошибках, выводящую информацию приложения из объекта Process. 2) Поскольку проблему легко воспроизвести, как только она возникнет, запустите Sysinternals ProcMon и посмотрите, есть ли у вас какие-либо события запуска процесса и посмотрите на события завершения процесса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...