Я получил веб-приложение MVC4, работающее и функционирующее должным образом, начиная с почти года. В последнее время при просмотре журналов ошибок производства я обнаружил множество таинственных записей исключений одного типа. Я проверил журналы и обнаружил, что эти исключения встречаются как в среде Бета, так и в производственной среде, но не в локальном (похоже, как подсказка - см. Результаты 1 ниже).Кто вызывает просмотр ошибок и почему?
Есть две последующие записи:
Одним из них является: Id
Тема: 56, сообщений: Server_Exception - Вид «Ошибка» или его мастер не был найден или нет вид двигателя не поддерживает было найдено: . Поиск в следующих местах: ~/Views/OrganizationUser/Error.cshtml ~/Views/OrganizationUser/Error.vbhtml ~/Views/Shared/Error.cshtml ~/Views/Shared/Error.vbhtml
Вторая запись журнала: Id
тема: 56, сообщений: Server_Exception - Stack Trace - на System.Web.Mvc.ViewResult.FindView (ControllerContext контекст) на System.Web.Mvc.ViewResultBase.ExecuteResult (Контекст ControllerContext) по адресу System.Web.Mvc.Async.Asy ncControllerActionInvoker. <> c__DisplayClass25.b__22 (IAsyncResult asyncResult) в System.Web.Mvc.Controller. <> c__DisplayClass1d.b__18 (IAsyncResult asyncResult) в System.Web.Mvc.Async.AsyncResultWrapper. <> c__DisplayClass4.b__3 (IAsyncResult ar) в System.Web.Mvc.Controller.EndExecuteCore (IAsyncResult asyncResult) в System.Web.Mvc.Async.AsyncResultWrapper. <> c__DisplayClass4.b__3 (IAsyncResult ar) по адресу System.Web.Mvc.MvcHandler. <> c__DisplayClass8.b__3 (IAsyncResult asyncResult) в System.Web.Mvc.Async.AsyncResultWrapper. <> c__DisplayClass4.b__3 (IAsyncResult аг) в System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() на System.Web.HttpApplication.ExecuteStep (IExecutionStep шаг, Логическое & completedSynchronously)
исключение регистрируется от Application_Error() в Global.asax.cs так:
var ex = Server.GetLastError();
if (ex != null)
{
logger.Log(string.Format("Server_Exception - {0}", ex.Message), LogCategory.Error);
logger.Log(string.Format("Server_Exception - Stack Trace - {0}", ex.StackTrace), LogCategory.Error);
}
А вот снимок сообщений журнала БД:
Поиск/Анализ:
Поскольку ошибки регистрируются только на удаленном сервере, он говорит мне, что он должен делать с тем, как MVC обрабатывает удаленные ошибки? CustomErrors? - Я не определил его в web.config. Нужно ли мне?
Но главный вопрос заключается в том, что вызвало ошибку? И кто ищет имя вида Ошибка? Я знаю, что вам трудно догадаться, но просто проверить мою удачу.
Другое обнаружение - это исключения, которые регистрируются после выхода пользователя из системы. В моей форме входа в систему я проверяю isAuthenticated, и если пользователь не прошел проверку подлинности, я регистрирую сообщение «Запрос не аутентифицирован, показывая регистрационную форму». и отобразить форму входа в систему. Я могу видеть это сообщение в журнале до вышеописанных сообщений об исключениях. Итак, что происходит на login.cshtml, который вызывает контакт с сервером, который генерирует ошибку? Я проверил, страница входа и _Layout, у которой много встроенного кода сервера, но не мог понять, что может заставить сервер попытаться загрузить страницу ошибок.
Я думаю, что внутри MVC вызывает страницу ошибок, которая не существует в моем исходном коде и, следовательно, это исключение. Но почему страница «Ошибка»? Я думал получить совет, что проверить в этом случае. Пожалуйста, сообщите, если вы хотите, чтобы я делил все, что могло помочь вам понять мою проблему.
Выполняйте поиск уровня на уровне «return View (« Ошибка ») или просто« Просмотр («Ошибка») без окружающих цитат. Готов поспорить, вы получите удар от AccountController. – rism
@rism - Ты проиграл ставку;) .... Я на самом деле сделал все возможные комбинации в решении. Я подозреваю, что это что-то внутреннее для фреймворка, который вызывает представление Error. Спасибо за предложение в любом случае. – SBirthare
К счастью, RussCam пришел на помощь с самым лучшим ответом. – rism