Ho passato molto tempo a cercare di trovare una soluzione alternativa per questo, inutilmente, quindi ho pensato di vedere se qualcuno qui ha un'idea.La vista "Errore" o il suo master non è stata trovata
Sto usando Elmah in my ASP.NET MVC3 application. Sto usando lo stesso identico codice dalla risposta accettata nel collegamento precedente.
Ho anche questo codice nel mio Global.asax per la visualizzazione di pagine di errore con la corretta risposta HTTP:
/// <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);
}
Il problema si verifica quando non sono sulla mia macchina di sviluppo (locale) (che inizialmente ha fatto penso che sia stato collegato a customErrors). Quando viene generata un'eccezione, Elmah gestisce l'errore e lo registra correttamente. Finisco anche sulla pagina di errore corretta. Tuttavia, prima di finire sulla pagina di errore corretto, posso vedere un'altra eccezione intermedio in fase di ingresso:
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
ASP.NET sta tentando di caricare una pagina di errore di default anche se sto cercando di gestirlo. Qualcuno ha qualche idea su come prevenirlo?
Questo ha fatto il trucco. Dopo aver esaminato il codice sorgente di HandleErrorAttribute, ho potuto vedere che avevo bisogno di saltare alcune delle funzionalità di base, ma penso che tu abbia ragione a voler saltare la chiamata del tutto e andar bene. Grazie per l'aiuto. –
Questo ha fatto il trucco. –
Sì, questo ha fatto il trucco – JoshYates1980