2013-02-07 15 views
8

私は以前、MVC4アプリケーションを持っていました。 私はオートファックのバージョンを更新しました。更新されたオートファックの後の奇妙な例外

助けてください!

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を更新する必要があります。

それでも問題が解決しない場合は、両方のファイルの新しいバージョンが実際にコードが実行されたフォルダにあることを確認してください。たぶんそれらのうちの1つをIISフォルダにコピーできませんでしたか?

+0

ありがとうございましたが、私の助けにはなりませんでした...まだ同じエラーがあります – IamStalker

+0

NuGetを使用して参照を管理しているのですか、手動で行っていますか? –

+0

私はNUgetを使用しています – IamStalker

1

これはよくあなたが(パッケージの名前を忘れてしまった)autofacのMVC 3のcontribを発見された方法InstancePerHttpRequest()

との非互換性を持っているのasp.net MVC 3を使用していることかもしれません。 私の場合、mvc 4にアップグレードすることで問題は解決しました。

関連する問題