J'ai recherché SO de haut en bas et toujours obtenir cette erreur. Je ne peux pas, pour la vie de moi, comprendre pourquoi.MVC RedirectToAction se dirige vers le mauvais chemin
{ "La vue « Erreur » ou son maître n'a pas été trouvé ou pas de moteur vue prend en charge les endroits les plus recherchés Les endroits suivants ont été recherchés:. \ R \ n ~/Vues/Administrateur/Error.aspx \ r \ n ~/Vues/Administrateur/Erreur.ascx \ r \ n ~/Vues/Partagé/Erreur.aspx \ r \ n ~/Vues/Partagé/Erreur.ascx \ r \ n ~/Vues/Administrateur/Erreur. cshtml \ r \ n ~/Vues/administrateur/Error.vbhtml \ r \ n ~/Vues/Shared/Error.cshtml \ r \ n ~/Vues/Shared/Error.vbhtml "}
C'est pris une classe d'enregistrement d'erreur personnalisée:
internal static class _Logger
{
internal static void Log(Exception ex)
{
string logPath = HttpContext.Current.Server.MapPath(@"\Log\" + DateTime.Now.Month + "_" + DateTime.Now.Year + "_log");
File.AppendAllText(logPath,
"Time:" + DateTime.Now + "\n"
+ ex.Message +"\n" + ex.InnerException + "\n" + ex.StackTrace);
}
}
Il est jeté d'ici:
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
protected void Application_Error()
{
var ex = Server.GetLastError(); //RIGHT HERE CATCHES IT.
_Logger.Log(ex);
}
}
Route Config:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Administrator",
url: "{controller}/{action}",
defaults: new { controller = "Administrator", action = "Index" }
);
routes.MapRoute(
name: "Trials",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Trials", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Error",
url: "{controller}/{action}",
defaults: new { controller = "Error", action = "Index"}
);
}
Qu'est-ce que je manque ici?
Merci.
EDIT
J'ai supprimé l'attribut d'autorisation personnalisé et je suis encore en train cette exception levée. Ce qui me trouble, c'est de ne jamais toucher les blocs de Catch.
EDIT 2
Je suis retourné et a fait un point d'arrêt au début de l'application.
Edité ci-dessus est l'endroit où l'exception est réellement levée.
Avez-vous reçu cette erreur en redirigeant uniquement vers la page d'erreur, ou cela se produit-il également sur d'autres redirections? –
@LuizPaulo Comme je l'ai dit, il semble seulement le faire après l'autorisation échouée. –
Je pense que c'est essayer de trouver la page d'erreur par défaut pour l'autorisation échouée qui est assez étrange –