我有一个ASP .NET Core Web应用程序(win服务),需要调用另一个.net Core进程(控制台应用程序)才能执行。 我有以下用于通话的代码:
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控制台应用程序,则该过程正在执行。