2015-08-09 79 views
0

我正在研究ASP.NET MVC 5應用程序。我已經使用DI的單元。當我在本地運行應用程序時,或者即使在本地將其部署到IIS上時,應用程序工作正常。但是我試圖將它移到Windows 2007(或2008)服務器,並且最終出現錯誤,指出「控制器沒有無參數構造函數」。我猜測這一定是由於DI注射失敗,但我在任何日誌中都找不到任何線索。以下是正在返回的詳細錯誤:ASP.NET MVC 5 Unity IIS部署無參數構造函數錯誤

確保控制器具有無參數公共構造函數。 ---> System.MissingMethodException:爲此對象定義的無參數構造函數。在 System.RuntimeTypeHandle.CreateInstance(RuntimeType類型,布爾 publicOnly,布爾NOCHECK,布爾& canBeCached, RuntimeMethodHandleInternal &構造函數,布爾& bNeedSecurityCheck)在 System.RuntimeType.CreateInstanceSlow(布爾publicOnly,布爾 skipCheckThis,布爾fillCache,StackCrawlMark &在 SYST stackMark)在 System.RuntimeType.CreateInstanceDefaultCtor(布爾publicOnly, 布爾skipCheckThis,布爾fillCache,StackCrawlMark & stackMark)
在System.Activator.CreateInstance(類型類型,布爾非公開) em.Activator.CreateInstance(Type type)at System.Web.Mvc.DefaultControllerFactory.DefaultControllerActivator.Create(RequestContext requestContext,type controllerType)---內部異常結束 堆棧跟蹤---在 System.Web.Mvc .DefaultControllerFactory.DefaultControllerActivator.Create(的RequestContext 的RequestContext,類型controllerType)在 System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext的 的RequestContext,字符串controllerName)在 System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase HttpContext的,一個IController &控制器,IController工廠&工廠)
at System.Web.Mvc.MvcHandler.BeginProcessRequest在System.Web.HttpApplication.ExecuteStep(HttpContextBase HttpContext的,AsyncCallback的回調,對象狀態)在 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() (IExecutionStep一步, 布爾& completedSynchronously)

有人能幫忙嗎?

+0

顯示您的控制器代碼,如果您有,控制器工廠 – Backs

+0

顯然,使用默認工廠而不是統一工廠。 –

+0

我從「Controller」類派生了我的控制器。但正如我所說,如果我在我的本地IIS中部署,它工作正常,只有當我將它推送到服務器時,問題是。公共類MyController:控制器 –

回答

0

最後,安裝Oracle Data Client的工作。不知道爲什麼它在融合日誌中抱怨Microsoft.Practices.Unity.Resources,但是在安裝Oracle數據客戶端之後它就起作用了。