【发布时间】:2019-03-11 14:03:26
【问题描述】:
我需要使用 ProcessStartInfo 从 ASP.net 核心 Web 应用程序启动一个应用程序(一个简单的 test.exe)。 应用程序开始使用这些参数:
var startInfo = new ProcessStartInfo
{
FileName = "test.exe",
Arguments = string.Join("|", args),
Verb = "runas",
//UseShellExecute = false,
//WindowStyle = ProcessWindowStyle.Hidden,
//CreateNoWindow = true,
//RedirectStandardOutput = true,
};
只要 spawn 应用程序(网络应用程序)处于活动状态,应用程序 test.exe 就会启动并定期运行。一旦 spawn WebApp 死掉, test.exe 也会死掉。
如您所见,我尝试了许多 ProcessStartInfo 参数,但都没有解决问题。 问题是:是否可以从 .net 核心的网络应用程序内部启动一个简单的 exe,并使其独立于 spawn 应用程序保持活动状态? 环境是IIS ws2016
【问题讨论】:
-
也许你的方向不对。请参阅:stackoverflow.com/questions/1008886/…
-
我已经阅读了这个问题,这应该是预期的行为。实际上在 IIS7 和 Windows 7 上它可以工作。在 WS2016 和 .netcore 上似乎有所不同
-
我没有WS2016服务器,但是我只是用
.NET Core创建了一个Test.exe和Web App,并将WebApp部署在IIS下。即使我停止了整个 IIS,Test.exe仍然运行并且永远不会存在,除非我杀死它。我认为这与 Windows Server 2016 无关。 -
您是从 IIS 中升起 Test.exe 吗?你用的是哪个用户?我做了同样的测试,但是一旦 IIS 死掉,Test.exe 就会死掉。
-
我在 Web 应用程序中通过
Process.Start(startInfo)开始Test.exe。是否有一个最小的在线演示可以重现?
标签: asp.net-core processstartinfo