La première demande prend du temps pour atteindre la méthode API du serveur car elle préconfigure les services dans une tâche de démarrage. Quelqu'un peut-il me suggérer de réduire la latence initiale de ma première demande après sa publication dans IIS
// This method gets called by the runtime.
// Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddTransient<IContactService, ContactService>();
services.AddTransient<IPersonService, PersonService>();
services.AddTransient<IDashboardService, DashboardService>();
services.AddTransient<IEmployeeService, EmployeeService>();
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
// In production, the React files will be served from this directory
services.AddSpaStaticFiles(configuration =>
{
configuration.RootPath = "ClientApp/build";
});
}
Besoin d'injecter plus de 100 services, il faut du temps pour la pré-construction.
Cela peut être un problème avec votre configuration IIS car le pool d'applications est recyclé de l'inactivité.
Si vous définissez le mode de démarrage d'ApplicationPool sous Paramètres avancés il doit être prêt à être utilisé chaque fois que vous l'appelez, sauf si il se trouve que vous l'appelez juste au moment du recyclage.
Cela peut être trouvé par:
Pour le dernier problème de recyclage à chaque fois qu'il le souhaite (toutes les 29 heures), vous pouvez planifier que le recyclage se produise à une heure définie pour être discret. Sur le même écran Paramètres avancés:
Change Regular Time Interval (minutes)
à 0Specific Times
et cliquez sur ...
où il est indiqué TimeSpan [] Array.