Ho iniziato a convertire il mio RC1 di asp.net core in RC2 e ho riscontrato problemi che ora non risolvono lo IHttpContextAccessor
.InvalidOperationException: impossibile risolvere il servizio per tipo "Microsoft.AspNetCore.Http.IHttpContextAccessor"
Per semplicità ho creato un nuovo progetto ASP.NET RC2 utilizzando Visual Studio Template ASP.NET Core Web Application (.Net Framework)
. Di quanto ho aggiunto costruttore per HomeController quale modello creato per me.
public HomeController(IHttpContextAccessor accessor)
{
}
E dopo comincio applicazione ricevo prossimo errore:
InvalidOperationException: Unable to resolve service for type 'Microsoft.AspNetCore.Http.IHttpContextAccessor' while attempting to activate 'TestNewCore.Controllers.HomeController'. в Microsoft.Extensions.Internal.ActivatorUtilities.GetService(IServiceProvider sp, Type type, Type requiredBy, Boolean isDefaultParameterRequired)
Nella mia applicazione reale ho bisogno di risolvere IHttpContextAccessor
nella mia classe di servizio per ottenere l'accesso a _contextAccessor.HttpContext.Authentication
e _contextAccessor.HttpContext.User
. Everething funziona bene in RC1. Quindi, come può essere supposto essere in RC2?
Si è lavorato. La stessa storia con 'services.AddScoped()' –
YuriyP
Abbiamo una raccomandazione ufficiale su quale sia l'ambito corretto? Dovrebbe essere 'Singleton',' Scoped' o 'Transient'? –
Ah è discusso qui, e più persone verificano che possa tranquillamente essere "Singleton". https://github.com/aspnet/Hosting/issues/793 –