У меня есть ASP.NET Core 2.2 приложение. Когда я вызываю приведенный ниже метод тестирования (из браузера Chrome) на основе типа ОС, открывается новый экземпляр браузера Chrome Incognito .
В Windows и Linux (работает в Virtual Box) process.WaitForExit()
ожидает закрытия браузера Chrome Incognito .
Но в Mac OS X (запущенной в Virtual Box) process.WaitForExit()
не ждет. Он сразу вызывается после process.Start()
.
Как убедиться, что процесс ожидает закрытия браузера?
public IActionResult Test()
{
string fileName = "";
string arguments = "";
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
fileName = @"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe";
arguments = @"-incognito --user-data-dir=""C:\Users\bala_sakthis\AppData\Local\Temp\ChromeData"" data:,";
}
else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
{
fileName = "google-chrome";
arguments = @"-incognito --user-data-dir=""/home/osboxes/ChromeData"" data:,";
}
else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
{
fileName = "open";
arguments = @"-a ""Google Chrome"" -n --args --incognito --user-data-dir=""/Users/bala/ChromeData"" data:,";
}
var process = new Process();
process.StartInfo.UseShellExecute = false;
process.StartInfo.FileName = fileName;
process.StartInfo.Arguments = arguments;
using (process)
{
try
{
process.Start();
process.WaitForExit();
Console.WriteLine("Process exited...");
Console.WriteLine(process.HasExited);
}
catch (Exception exp)
{
Console.WriteLine(exp);
}
}
return new OkResult();
}