我有一個使用Autofac和Autofac.Mvc3編寫的MVC3編寫的現有的,可用的Web應用程序。 我現在需要使用SignalR,所以我已經通過Nuget,Autofac.SignalR已經升級Autofac.dll到3.0.0。Autofac + MVC3 + SignalR集成問題
我現在注意到的是,當我試圖註冊一個類型時,當我調用InstancePerHttpRequest
作爲類型的生存期時,我得到一個MissingMethodException。作爲一個練習,我嘗試了使用Autofac.Mvc4和Autofac.SignalR這個全新的MVC4應用程序來處理當前應用程序的autofac註冊,這看起來工作得很好。
任何幫助,將理解的是,觸發錯誤
builder.RegisterType<CompanyController>().InstancePerHttpRequest();
// or
builder.Register(x => x.Resolve<ISessionFactory.
().OpenSession()).InstancePerHttpRequest();
異常未找到
方法
例行:「Autofac.Builder.IRegistrationBuilder
3<!0,!1,!2> Autofac.Builder.IRegistrationBuilder
3。 InstancePerMatchingLifetimeScope(System.Object的)」。
堆棧跟蹤
在在Autofac.Integration.Mvc.RegistrationExtensions.InstancePerHttpRequest [TLIMIT,TActivatorData,TStyle](IRegistrationBuilder`3註冊) 在DMS.Website.MvcApplication.Application_Start() d:\ Code \ Onset \ DOT \ trunk \ DMS \ DMS.Website \ Global.asax.cs:line 167
恐怕你在這裏運氣不好。你不能在MVC3和Autofac中使用SignalR,因爲在MVC3中不支持Autofac3。另請參閱:http://stackoverflow.com/a/16719213/872395因此,您需要升級到MVC4,或者需要構建Autofac 3.0以上版本的Autofac.MVC3。 – nemesv
我已經得出同樣的結論。你可以把它作爲答案嗎? – damienc88
您可以改用'InstancePerLifetimeScope'。 – jgauffin