2013-04-27 37 views
0

我在我的Web应用程序中遇到了令人沮丧的问题。当我测试应用程序本地时,我没有任何异常,当我发布应用程序时,然后抛出许多空的异常或像“对象引用未设置为对象的实例。”。我不明白为什么。我使用托管http://1and1.pl/。有谁能够帮助我?ASP MVC 4只在服务器中为空异常

堆栈跟踪:

[NullReferenceException异常:对象引用不设置为一个对象的一个​​实例] QuestionnaireEx.Controllers.QuestionnaireController.TestStart(AttemptAnswers ATTA,字符串prevBtn)7267 lambda_method(封闭, ControllerBase,对象[])119 System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase控制器,对象[]参数)14 System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext,IDictionary的2 parameters) +182 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary 2参数)27 System.Web.Mvc.Async。 <> c_ DisplayClass42.b _41()+28 System.Web.Mvc.Async。 <> c_ DisplayClass8 1.<BeginSynchronous>b__7(IAsyncResult _) +10 System.Web.Mvc.Async.WrappedAsyncResult 1.End()+50 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult)+32 System.Web.Mvc.Async。 <> c _DisplayClass39.b_ 33()+58 System.Web.Mvc.Async。 ()System.Web.Mvc.Async ()System.Web.Mvc.Async <>Ç _DisplayClass37.b_ 36(IAsyncResult的asyncResult)10 System.Web.Mvc.Async.WrappedAsyncResult 1.End() +50 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) +34 System.Web.Mvc.Async.<>c__DisplayClass2a.<BeginInvokeAction>b__20() +24 System.Web.Mvc.Async.<>c__DisplayClass25.<BeginInvokeAction>b__22(IAsyncResult asyncResult) +99 System.Web.Mvc.Async.WrappedAsyncResult 1.End()50 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult的asyncResult)+ 27 System.Web.Mvc。 <> c _DisplayClass1d.b_ 18(IAsyncResult asyncResult)+14 System.Web.Mvc.Async。 <>Ç _DisplayClass4.b_ 3(IAsyncResult的AR)23 System.Web.Mvc.Async.WrappedAsyncResult 1.End() +55 System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +39 System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +23 System.Web.Mvc.Async.WrappedAsyncResult 1.End()55 System.Web.Mvc.Controller.EndExecute(IAsyncResult的asyncResult)29 System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult)+10 System.Web.Mvc。 <> c _DisplayClass8.b_ 3(IAsyncResult asyncResult)+25 System.Web.Mvc.Async。 <>Ç _DisplayClass4.b__3(IAsyncResult的AR)23 System.Web.Mvc.Async.WrappedAsyncResult`1.End()55 System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult的asyncResult)31 系统。 Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult的结果)9 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()9629296 System.Web.HttpApplication.ExecuteStep(IExecutionStep步骤,布尔型&已完成同步)+155

+0

凡是在融合或Windows日志? – 2013-04-27 13:43:52

+0

多数民众赞成,我可以添加您可以显示TestStart动作代码这个例外发生在随机的情况下 – mati 2013-04-27 13:52:09

+0

? – devdigital 2013-04-27 13:58:33

回答

0

确保本地配置与您正在使用的服务器相同。

例如,如果您在IIS中托管,请使用与远程服务器上相同的设置设置本地IIS服务器。

如果您的1and1主机是共享的,再看看你的本地配置,并在手机上获得与支持的1and1看到的差异本地和远程配置之间的东西。

这有可能是你必须升级到VPS或根据您的配置需要专用服务器。

编辑

请你张贴的被称为MVC控制器方法的来源是什么?另外,当它在服务器上运行时,该方法中每个成员的值?这将有助于评估你的问题。

此外,

我刚刚意识到lambda_method(Closure , ControllerBase , Object[]) +119是在堆叠迹线的第二线。

如果从lambda表达式抛出错误,则可能是在lambda方法中使用的迭代项在某个点处设置为null。如果你没有在你的lambda表达式中检查null,那就试试看。这只是一个猜测,但没有源代码,我们所有的都是猜测。

+0

问题出在服务器上,这个托管非常弱 – mati 2013-05-10 11:32:52

+0

当你移动到更好的服务器时,问题得到修复?顺便说一句,我不知道你是否听说过Windows Azure中的,或试图使用它,但对于Web应用程序,他们的网站托管是伟大的。如果预算较大,他们还有其他选择。 – 2013-05-12 02:08:48

+0

但我没有; p在这个服务器会话中消失 – mati 2013-05-16 09:33:52