【问题标题】:ASP.Net core and ProcessStartInfoASP.Net 核心和 ProcessStartInfo
【发布时间】: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


【解决方案1】:

您可以使用 Hangfire (http://docs.hangfire.io/en/latest/background-processing/processing-jobs-in-web-app.html) 启动独立于 Web App 的后台进程。

【讨论】:

    猜你喜欢
    • 2017-03-12
    • 2018-10-17
    • 2020-01-10
    • 2017-10-23
    • 2020-09-08
    • 2018-03-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多