|
Найти ссылку без объекта
|
|||
---|---|---|---|
#18+
Добрый день! Иногда появляется от посетителей сайта ошибка "Ссылка на объект не указывает на экземпляр объекта". У одних она есть, у других её нет. Просишь почистить кэш - ошибка уходит... Как можно найти причину ошибки? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 08:29 |
|
Найти ссылку без объекта
|
|||
---|---|---|---|
#18+
saszayДобрый день! Иногда появляется от посетителей сайта ошибка "Ссылка на объект не указывает на экземпляр объекта". У одних она есть, у других её нет. Просишь почистить кэш - ошибка уходит... Как можно найти причину ошибки? Если посетители сайта видят NullReferenceException у себя на странице, то вы тупо отдаёте им полную информацию об ошибке. Вот и попросите сделать скриншот, там должно быть понятно в каком месте кода она происходит. А по хорошему ошибки надо обрабатывать и логировать. Следить за их количеством. И ни в коем случае не показывать посетителям. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 08:46 |
|
Найти ссылку без объекта
|
|||
---|---|---|---|
#18+
Дмитрий Мух, А клиенту я их и не показываю. Мне приходит сообщение, что ошибка в контроллере. Но строка не указана и определить не могу причину. Тем более, что ошибка не у всех... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 08:49 |
|
Найти ссылку без объекта
|
|||
---|---|---|---|
#18+
saszayДмитрий Мух, А клиенту я их и не показываю. Мне приходит сообщение, что ошибка в контроллере. Но строка не указана и определить не могу причину. Тем более, что ошибка не у всех... Классно. Советую расширить это своё сообщение необходимыми данными: включить туда Stack Trace, Inner Exceptions, данные о User Agent, о клиенте. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 09:00 |
|
Найти ссылку без объекта
|
|||
---|---|---|---|
#18+
saszay, также ещё есть вариант удалённой отладки , или использования dnSpy но это вам придётся сидеть и ждать, когда возникнет исключение ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 09:05 |
|
Найти ссылку без объекта
|
|||
---|---|---|---|
#18+
Дмитрий Мух, Message Ссылка на объект не указывает на экземпляр объекта. stackTrace в CPS_MVC.Controllers.OrderController.NoStep(OtdelModelNoStep model) в lambda_method(Closure , ControllerBase , Object[] ) в System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) в System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) в System.Web.Mvc.Async.AsyncControllerActionInvoker.b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState) в System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult) в System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) в System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.b__3d() в System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.b__3f() в System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.b__3f() в System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) в System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<>c__DisplayClass2b.b__1c() в System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.b__1e(IAsyncResult asyncResult) Data System.Collections.ListDictionaryInternal InnerException Source CPS_MVC TargetSite System.Web.Mvc.ActionResult NoStep(OtdelModelNoStep) Client Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 YaBrowser/19.9.3.314 Yowser/2.5 Safari/537.36 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 09:09 |
|
Найти ссылку без объекта
|
|||
---|---|---|---|
#18+
Ну показывай свой NoStep и OtdelModelNoStep В любом случае, при написании веб-приложения нужно исходить из того, что тебе на от клиента могут придти ЛЮБЫЕ данные, в том числе те, которые, которые ты не предполагал. Так что не надо надеяться на то, что все поля модели у тебя будут заполнены не-null значениями. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 09:18 |
|
Найти ссылку без объекта
|
|||
---|---|---|---|
#18+
saszay Message Ссылка на объект не указывает на экземпляр объекта. stackTrace в CPS_MVC.Controllers.OrderController.NoStep(OtdelModelNoStep model) в lambda_method(Closure , ControllerBase , Object[] ) в System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) в System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) в System.Web.Mvc.Async.AsyncControllerActionInvoker.b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState) в System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult) в System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) в System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.b__3d() в System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.b__3f() в System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.b__3f() в System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) в System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<>c__DisplayClass2b.b__1c() в System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.b__1e(IAsyncResult asyncResult) Data System.Collections.ListDictionaryInternal InnerException Source CPS_MVC TargetSite System.Web.Mvc.ActionResult NoStep(OtdelModelNoStep) Client Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 YaBrowser/19.9.3.314 Yowser/2.5 Safari/537.36 Вот так бы сразу, только ещё номер строки должен присутсвовать, где конкретно произошло исключение в методе NoStep(OtdelModelNoStep model) класса OrderController. Полностью всю информацию об ошибке покажите, ну и как просили выше: NoStep и OtdelModelNoStep. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 09:30 |
|
Найти ссылку без объекта
|
|||
---|---|---|---|
#18+
saszay, вам кстати что присылает сообщение, что ошибка в контроллере? Система мониторинга? Ваш собственный код приложения? Какая-то библиотека? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 09:32 |
|
Найти ссылку без объекта
|
|||
---|---|---|---|
#18+
Дмитрий Мух, Ошибки ловлю фильтром из App_Start. Контроллер: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31.
Модель: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 10:19 |
|
Найти ссылку без объекта
|
|||
---|---|---|---|
#18+
Ну вишь, модель ты нигде не проверяешь. Ошибка может выпадать, к примеру, на model.WorlDesc.Trim() Но тут еще много непонятно-постороннего типа Basket, _worlUid, что из них может быть null сказать сложно. Извлекай номер строки ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 10:29 |
|
Найти ссылку без объекта
|
|||
---|---|---|---|
#18+
Shocker.Pro, А как его извлечь? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 10:57 |
|
Найти ссылку без объекта
|
|||
---|---|---|---|
#18+
saszayА как его извлечь? Собрать с опцией генерации PDB-файлов и задеплоить с ними. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 11:20 |
|
Найти ссылку без объекта
|
|||
---|---|---|---|
#18+
У тебя сервер в релизе, без отладочной информации? Ну начни тогда с проверки модели (IsValid), у тебя же атрибуты навешаны на модель, что ты их не используешь? И проверь на нулл Код: c# 1.
это сейчас самое подозрительное место. Тем более, что по коду и по атрибутам ты вроде бы допускаешь, что поле может быть null, однако все равно нарываешься на NRE. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 11:22 |
|
Найти ссылку без объекта
|
|||
---|---|---|---|
#18+
Shocker.ProУ тебя сервер в релизе, без отладочной информации? Вполне можно сделать релизную сборку с PDB. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 11:29 |
|
Найти ссылку без объекта
|
|||
---|---|---|---|
#18+
Shocker.Proэто сейчас самое подозрительное место. Тем более, что по коду и по атрибутам ты вроде бы допускаешь, что поле может быть null, однако все равно нарываешься на NRE. С учетом того, что совершенно нет проверки ModelState.IsValid подозрительными могут быть все места. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 11:33 |
|
Найти ссылку без объекта
|
|||
---|---|---|---|
#18+
Shocker.Pro, Спасибо, помогло. А ведь стояла проверка string.IsNullOrEmpty. Почему она не срабатывала? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 11:46 |
|
Найти ссылку без объекта
|
|||
---|---|---|---|
#18+
saszayА ведь стояла проверка string.IsNullOrEmpty. Почему она не срабатывала?А причем тут IsNullOrEmpty? У тебя на Trim() падало ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 11:58 |
|
Найти ссылку без объекта
|
|||
---|---|---|---|
#18+
fkthatВполне можно сделать релизную сборку с PDB.можно ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 11:58 |
|
Найти ссылку без объекта
|
|||
---|---|---|---|
#18+
fkthatС учетом того, что совершенно нет проверки ModelState.IsValid подозрительными могут быть все места.я сказал САМОЕ подозрительное и оказался прав ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 11:59 |
|
Найти ссылку без объекта
|
|||
---|---|---|---|
#18+
А для общего развития (я не так давно в MVC): поле ведь есть, просто в нём нет значений. В этом случае оно не передаётся? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 12:34 |
|
Найти ссылку без объекта
|
|||
---|---|---|---|
#18+
saszay, используйте метод isNullOrWhiteSpace : Код: c# 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 13:05 |
|
Найти ссылку без объекта
|
|||
---|---|---|---|
#18+
с большой буквы только: IsNullOrWhiteSpace ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 13:07 |
|
Найти ссылку без объекта
|
|||
---|---|---|---|
#18+
Shocker.Pro https://docs.microsoft.com/ru-ru/aspnet/core/mvc/models/model-binding?view=aspnetcore-2.2 Кстати, могу ошибаться, но, кажется, в Коре немного все поменялось по сравнению с МВЦ5. Раньше value-type поле фейлилось, если его не было в HTTP, сейчас в него по умолчанию пишется дефолтное значение. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 15:10 |
|
|
start [/forum/search_topic.php?author=%D0%A8%D0%B5%D1%81%D1%82%D0%B8%D0%BF%D0%B0%D0%BB%D0%BE%D0%B2&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
get settings: |
9ms |
get forum list: |
11ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
others: | 20213ms |
total: | 20395ms |
0 / 0 |