我有一个现有的 .NET Core 3.1 API Web 应用程序,我想将其托管为 Windows 服务。实现这一目标的最佳方法是什么?
我发现几个教程指出添加 nuget 包Microsoft.Extensions.Hosting.WindowsServices并使用该UseWindowsService()函数应该足以将其托管为 Windows 服务。这对我不起作用。我会收到错误 1053:服务未及时响应启动或控制请求。
我还读过有关工作人员服务的内容,但我不知道这如何与现有的 API 项目一起使用。
我的 Program.cs 如下所示:
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args)
{
var config = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: false)
.Build();
return Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseUrls(config.GetSection("Hosting:Url").Value);
webBuilder.UseStartup<Startup>();
}).UseWindowsService();
}
}
Run Code Online (Sandbox Code Playgroud) DATA: BEGIN OF line,
CUOBJ TYPE CUOBJ,
tab_atinn TYPE STANDARD TABLE OF ATINN WITH DEFAULT KEY,
END OF line.
DATA:
CUBOBJ_TABLE LIKE STANDARD TABLE OF line WITH DEFAULT KEY.
...
DATA(table) = CUBOBJ_TABLE[ CUOBJ = value-instance ]-tab_atinn.
IF NOT line_exists( table[ currentatinn ] ).
INSERT currentatinn INTO table INDEX 1.
ENDIF.
Run Code Online (Sandbox Code Playgroud)
我正在尝试将新行添加到 CUOBJ_TABLE [..]-tab_atinn 中。执行代码后,表变量将有一个新行,但 CUBOBJ_TABLE[ CUOBJ = value-instance ]-tab_atinn 表不会有它。
如何使用引用或其他内容将其直接添加到 CUBOBJ_TABLE[ CUOBJ = value-instance ]-tab_atinn 中?
等待多个函数参数会提高性能吗?与非异步函数相比,参数函数是并行执行还是没有性能提升?
示例代码:
var result = GetGesult(await Func1(), await Func2(), await Func3(), await Func4());
Run Code Online (Sandbox Code Playgroud)