Widok „Błąd” lub jego wzorzec nie został znaleziony
Spędziłem dużo czasu, próbując znaleźć sposób na obejście tego problemu, więc pomyślałem, że zobaczę, czy ktoś tu ma pomysł.
używamElmah w mojej aplikacji ASP.NET MVC3. Używam dokładnie tego samego kodu z zaakceptowanej odpowiedzi w poprzednim linku.
Mam również ten kod w Global.asax do wyświetlania stron błędów z poprawną odpowiedzią HTTP:
<code> /// <summary> /// The customErrors functionality provided by ASP.NET results in HTTP 302 redirects occurring which doesn't accurately reflect what the real HTTP code of the response was. /// This method can be used to handle specific HTTP codes without an intermediate redirect. /// </summary> protected void Application_Error() { var exception = Server.GetLastError(); var httpException = exception as HttpException; Response.Clear(); Server.ClearError(); var routeData = new RouteData(); routeData.Values["controller"] = "Error"; routeData.Values["action"] = "Error500"; Response.StatusCode = 500; if (httpException != null) { Response.StatusCode = httpException.GetHttpCode(); Response.TrySkipIisCustomErrors = true; switch (Response.StatusCode) { case 403: routeData.Values["action"] = "Error403"; break; case 404: routeData.Values["action"] = "Error404"; routeData.Values["message"] = httpException.Message; break; case 500: routeData.Values["action"] = "Error500"; break; } } IController errorsController = new ErrorController(); var rc = new RequestContext(new HttpContextWrapper(Context), routeData); errorsController.Execute(rc); } </code>
Problem występuje, gdy nie jestem na moim (lokalnym) komputerze programistycznym (co początkowo sprawiło, że pomyślałem, że takcustomErrors związane z). Gdy zostanie zgłoszony wyjątek, Elmah obsługuje błąd i poprawnie go loguje. Skończyłem też na właściwej stronie błędu. Zanim jednak przejdziemy do poprawnej strony błędu, widzę inny zarejestrowany wyjątek pośredni:
<code>The view 'Error' or its master was not found or no view engine supports the searched locations. The following locations were searched: ~/Views/Articles/Error.aspx ~/Views/Articles/Error.ascx ~/Views/Shared/Error.aspx ~/Views/Shared/Error.ascx ~/Views/Articles/Error.cshtml ~/Views/Articles/Error.vbhtml ~/Views/Shared/Error.cshtml ~/Views/Shared/Error.vbhtml </code>
ASP.NET próbuje załadować domyślną stronę błędu, mimo że próbuję go obsłużyć. Czy ktoś ma jakieś pomysły, jak temu zapobiec?