Oma*_*oup 9 c# asp.net-web-api asp.net-core asp.net-core-webapi
我有一个现有的 .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)
小智 0
我就是这样做的:
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Hosting.WindowsServices;
namespace App.Name.API
{
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().RunAsService();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>();
}
}
Run Code Online (Sandbox Code Playgroud)
我使用 CreateWebHostBuilder 而不是 Create WebHostBuilder,因为我更习惯它(并且不确定两者之间的区别)。
| 归档时间: |
|
| 查看次数: |
6111 次 |
| 最近记录: |