c# - 无法从 .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 控制台应用程序,则该过程正在执行。
解决方案
推荐阅读
- sapui5 - SAP UI5 中的 SearchField 在单击“X”时不呈现建议
- keras - 为什么在这种情况下 sigmoid 函数的性能优于 tanh 和 softmax?
- python - 在 seaborn 热图中突出显示一行
- r - 有没有办法阻止 RStudio 重置我本地机器上的内存限制?
- swift - 将字典分组为字典数组
- react-native - 使用分页的 FlatList,如何更改可见页面上的事件?
- javascript - 谁能解释这个循环(JavaScript)
- webrtc - OpenTok/TokBox:有没有办法限制会话中允许的已发布流的数量?
- wpf - 如何使用数据绑定属性制作可重用的 WPF 自定义控件?
- css - 为什么在等式中使用 0 时 css-calc() 不起作用?