2012-11-04 220 views
0

當我運行我的ASP.NET MVC 3應用程序與它完美的作品,但是當我將其部署到一個IIS的Ninject,它給這個錯誤:ASP.NET MVC 3部署錯誤

[NullReferenceException: Object reference not set to an instance of an object.] 
    Betolto.Controllers.DataInputController..ctor() +47 
    DynamicInjector7922fd15a4fb4caba8ffb4cc7f18cbcf(Object[]) +42 
    Ninject.Activation.Providers.StandardProvider.Create(IContext context) +489 
    Ninject.Activation.Context.Resolve() +177 
    Ninject.<>c__DisplayClass10.<Resolve>b__c(IBinding binding) +30 
    System.Linq.WhereSelectEnumerableIterator`2.MoveNext() +151 
    System.Linq.Enumerable.SingleOrDefault(IEnumerable`1 source) +4222965 
    Ninject.Web.Mvc.NinjectDependencyResolver.GetService(Type serviceType) +64 
    System.Web.Mvc.DefaultControllerActivator.Create(RequestContext requestContext, Type controllerType) +51 
> 
[InvalidOperationException: An error occurred when trying to create a controller of type 'Betolto.Controllers.DataInputController'. Make sure that the controller has a parameterless public constructor.] 
    System.Web.Mvc.DefaultControllerActivator.Create(RequestContext requestContext, Type controllerType) +182 
    System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(RequestContext requestContext, Type controllerType) +80 
    System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext, String controllerName) +74 
    System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext, IController& controller, IControllerFactory& factory) +232 
    System.Web.Mvc.<>c__DisplayClass6.<BeginProcessRequest>b__2() +49 
    System.Web.Mvc.<>c__DisplayClassb`1.<ProcessInApplicationTrust>b__a() +13 
    System.Web.Mvc.SecurityUtil.<GetCallInAppTrustThunk>b__0(Action f) +7 
    System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Action action) +22 
    System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Func`1 func) +124 
    System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object state) +98 
    System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContext httpContext, AsyncCallback callback, Object state) +50 
    System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) +16 
    System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +8969412 
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +184 

我通過互聯網搜索,但我還沒有找到解決我的問題。 我感謝所有答案。

回答

1

從堆棧跟蹤問題是在你的控制器的(Betolto.Controllers.DataInputController)構造函數。 因此NInject可能正常工作。 我的猜測是由於其他原因(開發和生產環境之間的差異)而產生的錯誤,可能是配置文件中缺少的參數或數據庫數據的差異。 添加日誌記錄,以便您確切知道哪個行和哪個對象是導致異常的空對象。如果您可以將調試器附加到您的生產代碼,以加快調試速度。

+0

謝謝。突然間,應用程序在VS 2010中出錯了,但它已經給出了一個更乾淨的錯誤信息:「無法找到請求的.Net Framework數據提供程序,它可能沒有安裝。」 – sada