0

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

堆栈跟踪:

[NullReferenceException:对象引用未设置为对象的实例。] QuestionnaireEx.Controllers.QuestionnaireController.TestStart(AttemptAnswers attA, String prevBtn) +7267 lambda_method(Closure , ControllerBase , Object[] ) +119 System.Web.Mvc.ActionMethodDispatcher .Execute(ControllerBase 控制器, Object[] 参数) +14 System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary 2 parameters) +182 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary2 参数) +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.WrappedAsyncResult1.End() +50 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) +32 System.Web.Mvc.Async.<>c _DisplayClass39。 b_33() +58 System.Web.Mvc.Async.<>c _DisplayClass4f.b_ 49() +225 System.Web.Mvc.Async.<>c _DisplayClass4f.b_ 49() +225 System.Web.Mvc.Async .<>c _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.WrappedAsyncResult1.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.<>c _DisplayClass4.b_ 3(IAsyncResult ar) +23 System.Web.Mvc.Async.WrappedAsyncResult1.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.WrappedAsyncResult1.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.<>c _DisplayClass4.b__3(IAsyncResult ar) +23 System.Web.Mvc.Async.WrappedAsyncResult`1.End( ) +55 System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +31 System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult 结果) +9 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication .IExecutionStep.Execute() +9629296 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155

4

1 回答 1

0

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

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

如果您的 1and1 主机是共享的,那么请查看您的本地配置,然后使用 1and1 支持的电话查看本地配置和远程配置之间的区别。

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

编辑

您能否发布正在调用的 mvc 控制器方法的源代码?另外,方法中每个成员在服务器上运行时的值?这将有助于评估您的问题。

还,

我刚刚意识到这lambda_method(Closure , ControllerBase , Object[] ) +119是在堆栈跟踪的第二行。

如果错误是从 lambda 表达式引发的,则可能是您在 lambda 方法中使用的迭代项在某些时候设置为 null。如果您不在 lambda 表达式中检查 null,请尝试这样做。这只是一个猜测,但没有源代码,我们所拥有的只是猜测。

于 2013-04-27T14:08:46.693 回答