From f92b1f36e1a082322ac816708b2103378578ef87 Mon Sep 17 00:00:00 2001 From: Praburaj Date: Mon, 20 Apr 2015 16:19:56 -0700 Subject: [PATCH] Redirecting output for all process starts to see correlation in logs. --- .../Deployers/ApplicationDeployer.cs | 11 +++++++++-- .../Deployers/IISExpressDeployer.cs | 11 +++++++++-- .../Deployers/SelfHostDeployer.cs | 8 ++++---- 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/src/Microsoft.AspNet.Server.Testing/Deployers/ApplicationDeployer.cs b/src/Microsoft.AspNet.Server.Testing/Deployers/ApplicationDeployer.cs index e562df8492..e3f1531052 100644 --- a/src/Microsoft.AspNet.Server.Testing/Deployers/ApplicationDeployer.cs +++ b/src/Microsoft.AspNet.Server.Testing/Deployers/ApplicationDeployer.cs @@ -86,10 +86,17 @@ namespace Microsoft.AspNet.Server.Testing FileName = dnuPath, Arguments = parameters, UseShellExecute = false, - CreateNoWindow = false + CreateNoWindow = true, + RedirectStandardError = true, + RedirectStandardOutput = true }; - var hostProcess = Process.Start(startInfo); + var hostProcess = new Process() { StartInfo = startInfo }; + hostProcess.ErrorDataReceived += (sender, dataArgs) => { Logger.LogError(dataArgs.Data); }; + hostProcess.OutputDataReceived += (sender, dataArgs) => { Logger.LogInformation(dataArgs.Data); }; + hostProcess.Start(); + hostProcess.BeginErrorReadLine(); + hostProcess.BeginOutputReadLine(); hostProcess.WaitForExit(); if (hostProcess.ExitCode != 0) diff --git a/src/Microsoft.AspNet.Server.Testing/Deployers/IISExpressDeployer.cs b/src/Microsoft.AspNet.Server.Testing/Deployers/IISExpressDeployer.cs index 30dc94bfdc..25cf0e7012 100644 --- a/src/Microsoft.AspNet.Server.Testing/Deployers/IISExpressDeployer.cs +++ b/src/Microsoft.AspNet.Server.Testing/Deployers/IISExpressDeployer.cs @@ -90,7 +90,9 @@ namespace Microsoft.AspNet.Server.Testing FileName = iisExpressPath, Arguments = parameters, UseShellExecute = false, - CreateNoWindow = false + CreateNoWindow = true, + RedirectStandardError = true, + RedirectStandardOutput = true }; AddEnvironmentVariablesToProcess(startInfo); @@ -104,13 +106,18 @@ namespace Microsoft.AspNet.Server.Testing SetEnvironmentVariable(startInfo.Environment, "DNX_APPBASE", DeploymentParameters.ApplicationPath); #endif - _hostProcess = Process.Start(startInfo); + _hostProcess = new Process() { StartInfo = startInfo }; + _hostProcess.ErrorDataReceived += (sender, dataArgs) => { Logger.LogError(dataArgs.Data); }; + _hostProcess.OutputDataReceived += (sender, dataArgs) => { Logger.LogInformation(dataArgs.Data); }; _hostProcess.EnableRaisingEvents = true; var hostExitTokenSource = new CancellationTokenSource(); _hostProcess.Exited += (sender, e) => { TriggerHostShutdown(hostExitTokenSource); }; + _hostProcess.Start(); + _hostProcess.BeginErrorReadLine(); + _hostProcess.BeginOutputReadLine(); if (_hostProcess.HasExited) { diff --git a/src/Microsoft.AspNet.Server.Testing/Deployers/SelfHostDeployer.cs b/src/Microsoft.AspNet.Server.Testing/Deployers/SelfHostDeployer.cs index fe27167442..9663bc9ed6 100644 --- a/src/Microsoft.AspNet.Server.Testing/Deployers/SelfHostDeployer.cs +++ b/src/Microsoft.AspNet.Server.Testing/Deployers/SelfHostDeployer.cs @@ -58,7 +58,6 @@ namespace Microsoft.AspNet.Server.Testing FileName = dnxPath, Arguments = string.Format("\"{0}\" {1} --server.urls {2}", DeploymentParameters.ApplicationPath, commandName, DeploymentParameters.ApplicationBaseUriHint), UseShellExecute = false, - // https://github.com/aspnet/Hosting/issues/140 causing host process to exit when this is made false. CreateNoWindow = true, RedirectStandardError = true, RedirectStandardOutput = true @@ -66,9 +65,7 @@ namespace Microsoft.AspNet.Server.Testing AddEnvironmentVariablesToProcess(startInfo); - _hostProcess = Process.Start(startInfo); - _hostProcess.BeginErrorReadLine(); - _hostProcess.BeginOutputReadLine(); + _hostProcess = new Process() { StartInfo = startInfo }; _hostProcess.ErrorDataReceived += (sender, dataArgs) => { Logger.LogError(dataArgs.Data); }; _hostProcess.OutputDataReceived += (sender, dataArgs) => { Logger.LogInformation(dataArgs.Data); }; _hostProcess.EnableRaisingEvents = true; @@ -77,6 +74,9 @@ namespace Microsoft.AspNet.Server.Testing { TriggerHostShutdown(hostExitTokenSource); }; + _hostProcess.Start(); + _hostProcess.BeginErrorReadLine(); + _hostProcess.BeginOutputReadLine(); if (_hostProcess.HasExited) {