Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 更新Autofac后出现异常_C#_Exception_Asp.net Mvc 4_Autofac - Fatal编程技术网

C# 更新Autofac后出现异常

C# 更新Autofac后出现异常,c#,exception,asp.net-mvc-4,autofac,C#,Exception,Asp.net Mvc 4,Autofac,我以前有一个MVC4应用程序, 我已经更新了Autofac的版本,一切正常,现在我有一个奇怪的例外 请帮忙 Method not found: 'Autofac.Builder.IRegistrationBuilder`3<!0,!1,!2> Autofac.Builder.IRegistrationBuilder`3.InstancePerMatchingLifetimeScope(System.Object)'. Line 22: var build

我以前有一个MVC4应用程序, 我已经更新了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();
未找到方法:'Autofac.Builder.ireRegistrationBuilder`3 Autofac.Builder.ireRegistrationBuilder`3.InstancePerMatchingLifetimeScope(System.Object)'。 第22行:var builder=newcontainerbuilder(); 第23行:builder.RegisterFilterProvider(); 第24行:builder.Register(x=>newauthorizationservice()).As().instanceperhtprequest(); 第25行:builder.Register(x=>newheaderrepository()).As().instanceperhtprequest(); 第26行:builder.Register(x=>newpagebuilder()).As().instanceperhtprequest(); 堆栈跟踪:

 [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
[MissingMethodException:找不到方法:'Autofac.Builder.IRegistrationBuilder`3 Autofac.Builder.IRegistrationBuilder`3.InstancePerMatchingLifetimeScope(System.Object)'。]
Autofac.Integration.Mvc.RegistrationExtensions.InstancePerHttpRequest(IRegistrationBuilder`3注册)+0
c:\Users\user\Documents\Visual Studio 11\Projects\MyProject\Application.UI.Web.Services.HttpDependencyInjectionResolver.RegisterDependencies()中的Application.UI.Web\Services\HttpDependencyInjectionResolver.cs:24
c:\Users\user\Documents\Visual Studio 11\Projects\MyProject\Application.UI.Web.mvcapapplication.Application\u Start()中的Application.UI.Web.mvcapapplication.Application\u Start():42
[HttpException(0x80004005):找不到方法:'Autofac.Builder.IRegistrationBuilder`3 Autofac.Builder.IRegistrationBuilder`3.InstancePerMatchingLifetimeScope(System.Object)'。]
System.Web.HttpApplicationFactory.confureStartCalledForIntegratedMode(HttpContext上下文,httpapplicationapp)+9859441
System.Web.HttpApplication.registereventsubscriptionswithis(IntPtr-appContext,HttpContext-context,MethodInfo[]handlers)+118
System.Web.HttpApplication.InitSpecial(HttpApplicationState,MethodInfo[]处理程序,IntPtr-appContext,HttpContext-context)+172
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr-appContext,HttpContext-context)+336
System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext)+296
[HttpException(0x80004005):找不到方法:'Autofac.Builder.IRegistrationBuilder`3 Autofac.Builder.IRegistrationBuilder`3.InstancePerMatchingLifetimeScope(System.Object)'。]
System.Web.HttpRuntime.FirstRequestInit(HttpContext上下文)+9873784
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext上下文)+101
System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr,HttpContext上下文)+254
您还需要更新到相应的版本


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

很可能是您使用的asp.net mvc 3与方法
InstancePerHttpRequest()不兼容。

在autofac mvc 3 contrib中找到(忘记了软件包的名称)。
在我的例子中,升级到mvc 4解决了这个问题。

您是使用NuGet管理引用还是手动管理引用?请尝试删除Autofac和Autofac.Mvc4,然后重新添加Autofac.Mvc4。它将自动安装正确版本的Autofac。@IAMStapper:如果没有帮助,请检查我答案中的第二段。