için hizmet çözümlenemedi. Asp.net çekirdek RC1 projemi RC2'ye dönüştürmeye başladım ve şimdi IHttpContextAccessor
'un çözülmediği bir sorunla karşılaştım.InvalidOperationException: 'Microsoft.AspNetCore.Http.IHttpContextAccessor'
Sadelikten dolayı Visual Studio Template ASP.NET Core Web Application (.Net Framework)
'u kullanarak yeni ASP.NET RC2 projesi oluşturdum. Benim için yarattığım HomeController için kurucu ekledim.
public HomeController(IHttpContextAccessor accessor)
{
}
Ve gelecek hata alırsınız Uygulamayı başlattıktan sonra: benim gerçek uygulamasında
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)
Ben _contextAccessor.HttpContext.Authentication
ve _contextAccessor.HttpContext.User
erişmek amacıyla kendi hizmet sınıfında IHttpContextAccessor
çözmek gerekir. Her şey RC1'de iyi çalışıyor. Öyleyse RC2'de nasıl olabilir? IHttpContextAccessor artık varsayılan olarak yukarı kablolu
İşe yaradı edilir:
Bu eşdeğerdir. Ayrıca services.AddScoped() ' –
YuriyP
ile aynı hikaye Uygun kapsamın ne olduğuna dair resmi bir öneri var mı? "Singleton", "Scoped" veya "Transient" olmalı mı? –
Ah burada tartışıldı ve birden çok kişi güvenli bir şekilde 'Singleton' olabileceğini doğruladı. https://github.com/aspnet/Hosting/issues/793 –