2014-11-20 3 views
0

Этот метод определен в пределах веб-приложения ASP.NET (.NET 4.5.2), который работает на IIS 6 или выше:Может Process.Start выполняться одновременно на IIS

public string GetValueFromProcess() 
{ 
    string val = string.Empty; 
    try 
    { 
     System.Diagnostics.Process p = System.Diagnostics.Process.Start(GetMyExeFilePath()); 
     p.WaitForExit(); 
     val = mainp.StandardOutput.ReadToEnd(); 
    } 
    catch (Exception) { } 
    return val; 
} 

Будет ли такая функция в состоянии выполнить одновременно без проблем или обернуть его lock?

Очевидно, что есть параметры, которые должны быть переданы вместе с процессом, но я удалил эту часть для простоты.

+0

Почему, по вашему мнению, он не может быть запущен одновременно? –

+0

Поскольку я не уверен, создаст ли IIS отдельный экземпляр процесса для каждого запроса или он будет висеть. Я не знаком с тем, как IIS справляется с этим. – yazanpro

ответ

1

Функция блокирует текущий запрос, ожидая «p.WaitForExit();» завершить. Параллельные запросы будут порождать несколько процессов. Вам также необходимо будет учитывать параметр тайм-аута сценария запроса IIS, который выдает исключение ThreadAbort.

Смежные вопросы