如何设置:services.AddSingleton<ApiResponseService>();在 Asp.net 项目中具有 "server start -- till "infinity"" 的生命周期

How to setup : services.AddSingleton<ApiResponseService>(); with a lifetime of "server start -- till "infinity"" in a Asp.net project

我不确定问题是出在我这边(我的代码)还是服务器设置对不良行为负责。 我用框架 Blazor 做了一个 Asp.net 单页项目。它类似于 MVC Asp.net。在我的 Blazor 项目中,我在 startup.cs 文件中设置了一个依赖项注入服务。并使其生命周期为 singelton(据我所知,每个服务器一个对象实例开始为“无限”)。

在该服务中,我存储了 Api 调用的响应,以便数据就在“永久内存”中。 这就是理论(预期的行为)。 实际上,我的数据就在那里。我checked/look它从不同的IPadresses/PC/Mobile起来一切正常,Api数据显示给用户。但是数据在一定时间后就会丢失,而不是“永远”在那里(我们说的是它只需要几分钟 - >数据丢失)。会不会是我的提供商因为不活动而重置了我的 webside/server?还是我在我的代码中犯了错误导致了这种损失?我认为只要服务在服务器上运行,singelton 服务就会持续。 我尝试在此处提供正确的代码位:

Asp.net 核心 Blazor 服务器端项目:

文件-> Startup.cs

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddRazorPages();
        services.AddServerSideBlazor();
        services.AddSingleton<ApiResponseService>();
    }

文件-> 我的 ApiResponseService Class

   public class ApiResponseService
{
    //--NowCast
    public List<ClimaCellNowCast> LstClimaCellNowCasts { get; set; }
    //create a HttpClient with the correct apiCallStringApikey etc
    public ApiCallCreateClient NowCastHttp { get; } = new ApiCallCreateClient(Const.NowCastApiKeyCallString);
    
    //...
    
    //--Update Methode
    public async Task<bool> UpdateWeatherData()
    {
    LstClimaCellNowCasts = await this.GetWeatherDataApiAsync<ClimaCellNowCast>(this.NowCastHttp);
        return updateOkay;
    }

    public async Task<List<T>> GetWeatherDataApiAsync<T>(ApiCallCreateClient clientT)
    {
        List<T> climaCell = new List<T>();

        using HttpResponseMessage response = await 
            clientT.Client.GetAsync(clientT.Client.BaseAddress);
            if (response.IsSuccessStatusCode)
            {
                clientT.MyApiJsonResponse = await response.Content.ReadAsStringAsync();
                // nugetPacket ->  Newtonsoft.Json
                climaCell = JsonConvert.DeserializeObject<List<T>>(clientT.MyApiJsonResponse);
             }
        return climaCell;
    }
}

文件 -> Blazor 组件 // 网页端 //

@inject ApiResponseService apiCall;
//...
@apiCall.doSomething //show the Api response data

//...
@code{
 protected override async void OnInitialized()
 {
     UpdateSuccessfull = await apiCall.UpdateWeatherData();
     this.StateHasChanged();
 }

 bool UpdateSuccessfull;

 private async Task GetWeatherData()
 {
    UpdateSuccessfull = await apiCall.UpdateWeatherData();
 }
}

有什么方法可以让我的 api 回复在一段时间后不会“丢失”? ^不好

我的提供商回复了我的电子邮件:...应用程序池空闲时间默认设置为 5 分钟。 ... 所以这意味着我的单身生活时间是 5 分钟。 ;) 至少我现在知道发生了什么