Ich habe ELMAH zu meiner ASP.NET MVC 4 .Net 4-Webanwendung hinzugefügt.
Die Integration war einfach und es funktioniert gut.
Ich habe den Wert "elmah.mvc.route" in den App-Einstellungen meiner web.config auf eine Route "Admin / SiteLog" geändert - das Elmah-Protokoll wird nun auf dieser Route angezeigt
Aber es wird auch immer noch aus irgendeinem Grund bei "/ elmah" angezeigt (ohne CSS-Styling, aber gleichen Inhalt).
Wie kann ich die Standard-Elmah-Route deaktivieren?
Die Integration wurde mithilfe des Elmah.MVC nuget-Pakets
durchgeführtDies passiert, weil die Standardroute (vorausgesetzt, Sie haben eine) immer noch mit Elmah.Mvc.ElmahController übereinstimmt.
%Vor%Der "{Controller}" Teil der Route wird einen passenden Controller finden, ob Sie wollen oder nicht. Dies ist in diesem Fall offensichtlich problematisch.
Sie können Einschränkungen für Ihre Routen hinzufügen, indem Sie IRouteConstraint verwenden, umrissen von hier . Die NotEqual-Einschränkung ist eigentlich ziemlich nützlich.
%Vor%Also schließe ElmahController von der Standardroute aus, indem du Folgendes verwendest.
%Vor%Dadurch werden Anfragen für "/ elmah" eine 404 zurückgeben.
Ich habe gerade dieses Problem selbst durchgearbeitet und die neueste Version scheint ein paar App-Einstellungen zu haben, die gut genug dafür funktionieren.
%Vor%Es ist wahrscheinlich auch wert, sich der anderen bewusst zu sein, also schaut nach einer Standardinstallation.
%Vor% Sie können den Speicherort angeben, indem Sie den Pfad im Abschnitt httpHandlers
der Datei web.config
Tags und Links asp.net-mvc web-config asp.net-mvc-4 elmah routes