수년간 Autofac을 사용해 본 적이 있지만이 동작을 본 적이 없습니다. 빌드 후 응용 프로그램이 정상적으로 실행됩니다. 응용 프로그램 풀 (내가 Web.config의를 터치하여이 테스트) 재활용 후 그러나, , 나는이 DependencyResolutionException를 얻을 :응용 프로그램 풀 재활용 후 Autofac가 해결되지 않음
None of the constructors found with 'Autofac.Core.Activators.Reflection.DefaultConstructorFinder' on type 'Namespace.Controllers.HomeController' can be invoked with the available services and parameters
HomeController 다른 종속성이 하나 명의 의존성을 가지고, 그러나 나는 그것이 재활용되기 전에 수행하기 때문에 은을 해결할 수 있음을 안다. 왜 지구상에서 이런 일이 일어날까요 ???
나는과 같이 모든 autowire하기 :public static IContainer GetAutoFacContainer()
{
var builder = new ContainerBuilder();
var assembliesToRegister = AppDomain.CurrentDomain.GetAssemblies()
.Where(a => a.FullName.StartsWith("Prefix")).ToArray();
builder.RegisterAssemblyTypes(assembliesToRegister)
.AsImplementedInterfaces().AsSelf().PropertiesAutowired().InstancePerLifetimeScope();
return builder.Build();
}
은 그 때 나는 WebAPI 및 MVC 컨트롤러에 대한 컨테이너를 사용합니다. var autoFacContainer = DependencyRegistrar.GetAutoFacContainer();
DependencyResolver.SetResolver(new AutofacDependencyResolver(autoFacContainer));
GlobalConfiguration.Configuration.DependencyResolver =
new AutofacWebApiDependencyResolver(autoFacContainer);
관련 항목 : https://stackoverflow.com/questions/37713188/asp-net-api-di-simple-injector-null-reference-on-iis-pool-recycle – Steven
참조 : http : // docs .autofac.org/ko/latest/faq/iis-restart.html – Steven
감사합니다. 스티븐 - 내 문제를 해결했습니다! – ItsJason