Не могу понять, почему я получаю это исключение nullReference в ASP MVC при загрузке страницы
У меня есть веб-приложение, которое не дает мне никаких проблем на моем компьютере, но когда я его развертываю на сервере, я получаю эту ошибку. Это не дает мне никаких строк исходного кода для проверки, и я не знаю, почему это может произойти.
Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.
Source Error:
[No relevant source lines]
Source File: c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\a9dc635c\ccb3814\App_Web_item.cshtml.f0356b3c.uyw8roer.0.cs Line: 0
Stack Trace:
[NullReferenceException: Object reference not set to an instance of an object.]
ASP._Page__AssemblyResource_MyProject_Web_Mvc__Version_1_0_0_0__Culture_neutral__PublicKeyToken_null_Views_LeagueGlobal_Item_cshtml.Execute() in c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\a9dc635c\ccb3814\App_Web_item.cshtml.f0356b3c.uyw8roer.0.cs:0
System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +279
System.Web.Mvc.WebViewPage.ExecutePageHierarchy() +125
System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) +195
System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) +383
System.Web.Mvc.<>c__DisplayClass1a.<InvokeActionResultWithFilters>b__17() +32
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) +977396
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) +977396
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult) +265
System.Web.Mvc.Async.<>c__DisplayClass25.<BeginInvokeAction>b__22(IAsyncResult asyncResult) +964636
System.Web.Mvc.<>c__DisplayClass1d.<BeginExecuteCore>b__18(IAsyncResult asyncResult) +28
System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +20
System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +67
System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +20
System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +53
System.Web.Mvc.<>c__DisplayClass8.<BeginProcessRequest>b__3(IAsyncResult asyncResult) +42
System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +20
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +53
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +469
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +375
Ответы
Ответ 1
Я столкнулся с той же проблемой. К сожалению, трассировка стека в этом случае не очень полезна. Исключение происходит точно в представлении, что это было в моем случае:
@Model.SomeProperty.Trim()
И Model.SomeProperty был нулевым. Поскольку нет способа его отладки; Я рекомендую подход с двоичным расщеплением:
- сохранить ваше местоположение в другом месте
- удалять по отдельности логические части из вашего представления
- после каждого удаления сохранить ваш просмотр и повторить проверку
- Если исключение больше не воспроизводится, исключение NullReferenceException произошло в удаляемом вами блоке; поэтому добавьте его обратно и удалите логические части внутри этого блока, пока не выделите строку, вызывающую исключение.
Его хромой я знаю, но я не нашел другого пути - кстати. это то, что я получил для выполнения заданий контроллера.
Ответ 2
Перейдите в строку 0 вашего исходного файла по адресу:
c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Временные файлы ASP.NET\root\a9dc635c\ccb3814\App_Web_item.cshtml.f0356b3c.uyw8roer.0.cs
Затем используйте это, чтобы указать, где именно исключение происходит в вашем кодовом блоке:
try
{
...
}
catch (NullReferenceException ex)
{
ShowMessageBox("Error" + ex.Message);
}
Убедитесь, что:
- Вы инициировали переменные, с которыми вы манипулируете.
- Переменные, которые вы используете, не стали null с момента его развертывания на сервере.
- Вы не используете переменные за пределами своей области.