我正在使用API
写一个Asp.net Core 3.1
。我正在IHostedService
中使用API
进行后台处理。
IHostedService
类:
public class DataUpdateBackgroundService : Microsoft.Extensions.Hosting.BackgroundService
{
private ITurkeyProvinceDataService _dataService;
public DataUpdateBackgroundService(ITurkeyProvinceDataService dataService)
{
_dataService = dataService;
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
stoppingToken.Register(() =>
Console.WriteLine(""));
while (!stoppingToken.IsCancellationRequested)
{
// Your code here
_dataService.UpdateData();
await Task.Delay(TimeSpan.FromMinutes(10), stoppingToken);
}
}
}
在我的UpdateData
函数中,
我将数据记录在数据库中10分钟。我正在从其他API提取此保存的数据。
因此,它可以在我的本地设备上正常运行。
当我在Azure Web Service
中发布此版本时,出现标题错误。但是,如果我不使用自己的UpdateData
函数,就不会收到错误消息。
我不知道它是否与Azure相关,或者我的功能应该采用异步之类的结构。你能帮我吗?
答案 0 :(得分:0)
由于在项目中混合库引用而发生此问题。例如,如果要将.NET Core 2.2应用程序升级到.NET Core 3.1,则应确保没有对2.2库的引用或依赖性。
我在自己的网站上进行了测试,并且运行良好。转到您的Web应用,然后单击Extensions
,然后从应用程序服务中删除扩展名。并在本地检查nuget软件包。您可以参考以下类似的issue。
更新:
此问题的原因来自var info = TimeZoneInfo.FindSystemTimeZoneById("Turkey Standard Time");
,我将其用于更新数据功能中的日期操作。