ASP.NET OWIN 自托管控制台 window 无法从正常的 ASP.NET Web API 控制器动态启动
ASP.NET OWIN self hosting console window couldn't start dynamically from a normal ASP.NET Web API Controller
我需要根据需要启动我的 OWIN 自托管控制台应用程序。这个需求在一个单独的 ASP.NET Web API 中决定,它通常以调试模式托管在 VS 的 IIS express 下。但是我无法从这个决策中提示命令 window ASP.NET Web API 即使没有收到错误。下面是我的测试代码,仅调用命令提示符,直接写在我的决策 Web API 控制器中。
using (Process p = new Process())
{
// set start info
p.StartInfo = new ProcessStartInfo("cmd.exe")
{
RedirectStandardInput = true,
UseShellExecute = false,
WorkingDirectory = @"d:\"
};
// event handlers for output & error
p.OutputDataReceived += p_OutputDataReceived;
p.ErrorDataReceived += p_ErrorDataReceived;
// start process
p.Start();
// send command to its input
p.StandardInput.Write("dir" + p.StandardInput.NewLine);
//wait
p.WaitForExit();
}
所有应用程序都在同一台机器上。在 ASP.NET MVC 控制器事件下,我没有得到上述代码 运行ning 的任何输出,尽管相同的代码在控制台应用程序下给了我预期的命令 window if 运行 .
Is there any restriction to prompt command window under an ASP.NET Web API context?
我可以通过如下所示删除 "RedirectStandardInput" 来提示命令。
try
{
using (Process p = new Process())
{
// set start info
p.StartInfo = new ProcessStartInfo("cmd.exe")
{
// RedirectStandardInput = true,
// UseShellExecute = false,
//WorkingDirectory = root + @"\Test"
};
// start process
p.Start();
p.WaitForExit();
p.Close();
}
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
保持此线程打开,就好像有人对 RedirectStandardInput = true 的情况下的提示命令给出了答案一样
我需要根据需要启动我的 OWIN 自托管控制台应用程序。这个需求在一个单独的 ASP.NET Web API 中决定,它通常以调试模式托管在 VS 的 IIS express 下。但是我无法从这个决策中提示命令 window ASP.NET Web API 即使没有收到错误。下面是我的测试代码,仅调用命令提示符,直接写在我的决策 Web API 控制器中。
using (Process p = new Process())
{
// set start info
p.StartInfo = new ProcessStartInfo("cmd.exe")
{
RedirectStandardInput = true,
UseShellExecute = false,
WorkingDirectory = @"d:\"
};
// event handlers for output & error
p.OutputDataReceived += p_OutputDataReceived;
p.ErrorDataReceived += p_ErrorDataReceived;
// start process
p.Start();
// send command to its input
p.StandardInput.Write("dir" + p.StandardInput.NewLine);
//wait
p.WaitForExit();
}
所有应用程序都在同一台机器上。在 ASP.NET MVC 控制器事件下,我没有得到上述代码 运行ning 的任何输出,尽管相同的代码在控制台应用程序下给了我预期的命令 window if 运行 .
Is there any restriction to prompt command window under an ASP.NET Web API context?
我可以通过如下所示删除 "RedirectStandardInput" 来提示命令。
try
{
using (Process p = new Process())
{
// set start info
p.StartInfo = new ProcessStartInfo("cmd.exe")
{
// RedirectStandardInput = true,
// UseShellExecute = false,
//WorkingDirectory = root + @"\Test"
};
// start process
p.Start();
p.WaitForExit();
p.Close();
}
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
保持此线程打开,就好像有人对 RedirectStandardInput = true 的情况下的提示命令给出了答案一样