2013-02-07 49 views
8

我有一个MVC4应用程序之前, 我已经更新Autofac的版本,每件事情都很好,现在我有这个奇怪的例外。奇怪的异常后更新Autofac

请帮忙!?

Method not found: 'Autofac.Builder.IRegistrationBuilder`3<!0,!1,!2> 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<IAuthService>().InstancePerHttpRequest(); 
Line 25:    builder.Register(x => new HeaderRepository()).As<IUIHeaderRepository>().InstancePerHttpRequest(); 
Line 26:    builder.Register(x => new PageBuilder()).As<IUPageBuilder>().InstancePerHttpRequest(); 

堆栈跟踪:

[MissingMethodException: Method not found: 'Autofac.Builder.IRegistrationBuilder`3<!0,!1,!2> 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<!0,!1,!2> 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<!0,!1,!2> 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 

回答

14

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

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

+0

谢谢,但它没有帮助我...仍然有相同的错误 – IamStalker

+0

你使用NuGet来管理你的参考或手动吗? –

+0

我正在使用NUget – IamStalker

1

这很可能是您正在使用asp.net MVC 3具有与方法InstancePerHttpRequest()

被发现autofac MVC 3的contrib(忘了包的名称)不兼容。 在我的情况升级到mvc 4修复了这个问题。