首页 > 解决方案 > 无法从 .net core Web 应用程序调用 .net core 进程

问题描述

我有一个 ASP .NET 核心 Web 应用程序(win 服务),它需要调用另一个 .NET 核心进程(控制台应用程序)来执行。我有以下调用代码:

 var process = new Process
 {
    StartInfo = new ProcessStartInfo
    {
        FileName = "dotnet",
        Arguments = @"C:\CxSASTEngine\CxEngine\Product\netcoreapp2.1\ScanClient.dll" + " blablabla",
        UseShellExecute = false,
        RedirectStandardOutput = false,
        RedirectStandardError = false,
        CreateNoWindow = false,
    }
};

process.Start();

如果我将相同的代码放在新的 .Net 核心控制台应用程序中,该进程会运行,但在 win 服务的范围内它无法运行。

ScanClient.dll 代码为:

static void Main(string[] args)
{            try
            {
                Console.WriteLine(args.Length);
                if (args.Length > 0)
                {
                    Console.WriteLine(args[0]);
                }
                Console.ReadLine();
                if (File.Exists(@"C:\Users\Mary\Desktop\mary.txt"))
                {
                    File.Delete(@"C:\Users\Mary\Desktop\mary.txt");
                }
                File.Create(@"C:\Users\Mary\Desktop\mary.txt");
            }
            catch (Exception)
            {
                Environment.Exit(-1);
            }
}

代码不在win服务范围内运行的原因是什么?公平地说,如果我将 ScanClient 创建为生成 .exe 文件的 .netFramewrok 控制台应用程序,则该过程正在执行。

标签: c#.net-core

解决方案


推荐阅读