Asp.NET核心后端服务应用程序
我是否可以创建一个Asp.Net核心应用程序,该应用程序基本上可以模拟windows服务,并在后台持续运行?我怀疑您可以,但我不确定使用哪种应用程序类型(即控制台应用程序、web应用程序等) 场景:这是一个非常利基的情况,因为它将为我们正在使用的基于云的环境西门子MindSphere创建。我们已经在云中有了一个可以从PostgreSQL数据库读取数据的应用程序,但我们需要一个后端服务应用程序,该应用程序每小时都可以调用MindSphere Api,从中接收数据,并用这些数据填充上述数据库中的一个字段。使用.net core可以这样做吗?您可以使用。定时任务示例:Asp.NET核心后端服务应用程序,asp.net,postgresql,asp.net-core,cloud,mindsphere,Asp.net,Postgresql,Asp.net Core,Cloud,Mindsphere,我是否可以创建一个Asp.Net核心应用程序,该应用程序基本上可以模拟windows服务,并在后台持续运行?我怀疑您可以,但我不确定使用哪种应用程序类型(即控制台应用程序、web应用程序等) 场景:这是一个非常利基的情况,因为它将为我们正在使用的基于云的环境西门子MindSphere创建。我们已经在云中有了一个可以从PostgreSQL数据库读取数据的应用程序,但我们需要一个后端服务应用程序,该应用程序每小时都可以调用MindSphere Api,从中接收数据,并用这些数据填充上述数据库中的一个
internal class TimedHostedService : IHostedService, IDisposable
{
private readonly ILogger _logger;
private Timer _timer;
public TimedHostedService(ILogger<TimedHostedService> logger)
{
_logger = logger;
}
public Task StartAsync(CancellationToken cancellationToken)
{
_logger.LogInformation("Timed Background Service is starting.");
_timer = new Timer(DoWork, null, TimeSpan.Zero,
TimeSpan.FromSeconds(5));
return Task.CompletedTask;
}
private void DoWork(object state)
{
_logger.LogInformation("Timed Background Service is working.");
}
public Task StopAsync(CancellationToken cancellationToken)
{
_logger.LogInformation("Timed Background Service is stopping.");
_timer?.Change(Timeout.Infinite, 0);
return Task.CompletedTask;
}
public void Dispose()
{
_timer?.Dispose();
}
}
谢谢你的回复!我是否可以在一个单独的Asp.Net核心web应用程序中实现此功能,即使它不需要用户交互?@dsis如果您已经有一个Asp.Net核心web应用程序,您可以安全地将其添加到该应用程序中。如果没有,那么是的,您必须创建一个,您需要在某个地方托管它毕竟“我不确定要使用哪种应用程序类型(即控制台应用程序、web应用程序等)”–请注意,所有ASP.NET核心应用程序本质上都是控制台应用程序,因为它们托管自己的web服务器。
public void ConfigureServices(IServiceCollection services)
{
...
services.AddHostedService<TimedHostedService>();
...
}