更新Autofac后出现奇怪的exception

我之前有一个MVC4应用程序,我已经更新了Autofac版本,每件事都运行正常,现在我有这个奇怪的例外。

请帮忙!?

Method not found: 'Autofac.Builder.IRegistrationBuilder`3 Autofac.Builder.IRegistrationBuilder`3.InstancePerMatchingLifetimeScope(System.Object)'. Line 22: var builder = new ContainerBuilder(); Line 23: builder.RegisterFilterProvider(); Line 24: builder.Register(x => new AuthorizationService()).As().InstancePerHttpRequest(); Line 25: builder.Register(x => new HeaderRepository()).As().InstancePerHttpRequest(); Line 26: builder.Register(x => new PageBuilder()).As().InstancePerHttpRequest(); 

堆栈跟踪:

  [MissingMethodException: Method not found: 'Autofac.Builder.IRegistrationBuilder`3 Autofac.Builder.IRegistrationBuilder`3.InstancePerMatchingLifetimeScope(System.Object)'.] Autofac.Integration.Mvc.RegistrationExtensions.InstancePerHttpRequest(IRegistrationBuilder`3 registration) +0 Application.UI.Web.Services.HttpDependencyInjectionResolver.RegisterDependencies() in c:\Users\user\Documents\Visual Studio 11\Projects\MyProject\Application.UI.Web\Services\HttpDependencyInjectionResolver.cs:24 Application.UI.Web.MvcApplication.Application_Start() in c:\Users\user\Documents\Visual Studio 11\Projects\MyProject\Application.UI.Web\Global.asax.cs:42 [HttpException (0x80004005): Method not found: 'Autofac.Builder.IRegistrationBuilder`3 Autofac.Builder.IRegistrationBuilder`3.InstancePerMatchingLifetimeScope(System.Object)'.] System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app) +9859441 System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +118 System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +172 System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +336 System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +296 [HttpException (0x80004005): Method not found: 'Autofac.Builder.IRegistrationBuilder`3 Autofac.Builder.IRegistrationBuilder`3.InstancePerMatchingLifetimeScope(System.Object)'.] System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +9873784 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +101 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +254 

您还需要将Autofac.Integration.Mvc更新为相应的版本。

如果这没有帮助,请确保两个文件的新版本实际上都在执行代码的文件夹中。 也许其中一个无法复制到IIS文件夹?

你可能正在使用asp.net mvc 3,它与方法InstancePerHttpRequest()不兼容

发现autofac mvc 3 contrib(忘了包的名字)。 在我的情况下升级到mvc 4修复了这个问题。