Как запустить новый процесс в веб-приложении asp.net - PullRequest
0 голосов
/ 15 октября 2019

Браузером по умолчанию на наших веб-серверах является IE. У нас есть требование запускать экземпляр Chrome одним нажатием кнопки на одном из наших веб-приложений.

Я написал тестовое приложение asp.net, чтобы попытаться достичь вышеуказанного. В тестовом приложении я запускаю процесс нажатием кнопки на стороне сервера, чтобы запустить Chrome, но окно Chrome не появляется. Процесс запускается нормально, так как я получаю идентификатор процесса, а свойство HasExited имеет значение false. Однако на экране ничего не появляется, и мне кажется, что я не могу найти процесс в списке процессов.

Я знаю, что в веб-приложении процесс запускается в контексте asp. Чистый рабочий процесс и что он не имеет доступа к рабочему столу и имеет ограниченные разрешения. Поэтому я дал процессу процесса IIS Admin Service разрешение на взаимодействие с рабочим столом на моем локальном компьютере (через окно «Процессы»). Кроме того, в коде я попытался запустить процесс, используя мою собственную учетную запись пользователя, которая имеет права администратора на локальном компьютере, но все еще не может отобразить окно Chrome на экране.

Мой код на стороне сервера выглядит следующим образом:

var psi = new ProcessStartInfo
{
    FileName = @"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe",
    Arguments = "http://www.msn.com",
    CreateNoWindow = false,
    UseShellExecute = true
    UserName = "username",
    Password = "secure password",
    Domain = "domain"
};
var process = new Process
{
    StartInfo = psi
};
var result = process.Start(); // result is true
int processId = process.Id; // processId is valid

Буду признателен за вашу помощь.

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