Ich habe eine Anwendung mit MVC4 und EF5.x geschrieben und ELMAH für die Protokollierung von Ausnahmen zur Überprüfung verwendet. Wir haben die Anwendung vor kurzem freigegeben, und wie erwartet, füllte sich das ELMAH-Protokoll mit mehreren Dutzend Ausnahmen. Großartig (und nicht)! Das Problem ist, dass eine dieser Ausnahmen
ist %Vor%Natürlich gibt es keine Möglichkeit, die EntityValidationErrors Eigenschaft für mehr Details zu sehen und der Stack-Trace wickelt bis zu meinem SubmitChanges ()
Ich weiß, dass ELMAH die Möglichkeit hat, es uns zu ermöglichen, eigene Ausnahmen zu erheben und in gewisser Weise anzupassen, was eingeloggt wird und wie. Leider bin ich immer noch sehr neu bei ELMAH und MVC und eine Google-Suche ergab nichts Relevantes. Ich habe ein Blog-Artikel Protokollierung EntityValidationErrors finden, und der Autor ausdrücklich erwähnt, dass er schreiben, wie in ELMAH so zu tun, aber das wurde geschrieben im September 2012 und ich habe seitdem nichts mehr gesehen.
Jede Hilfe würde sehr geschätzt werden!
Wahrscheinlich ist es in diesem Fall am besten, wenn Sie Ihren context.SaveChanges();
-Aufruf in einen try...catch
-Block einbinden und dann die einzelnen Elemente aus den ValidationExceptions protokollieren. Etwas wie das folgende sollte dich beginnen:
Wie wäre es mit dieser Erweiterungsmethode, die auf dem obigen basiert?
%Vor%Elmah wird dann eine viel bessere Ausnahme im Protokoll haben
Nach dem unten stehenden Code erneut zu werfen ist nicht perfekt (obwohl es mir nichts ausmacht, den Call-Stack hier zurückzusetzen, da Elmahs protokollierte Details der angegebenen Adresse mir zeigen werden, was zu der Exception geführt hat) Erarbeiten Sie Ihre eigenen Sicherheitsimplikationen, aber das ist ziemlich kurz gefasst & amp; erfüllt meine Bedürfnisse:
%Vor%Hier ist meine Implementierung für die Global Web API Lösung für Elmah und EF Validierungsfehler:
%Vor% und dann registriere ich das Attribut in der WebApiConfig.cs
Datei unter App_Start
Tags und Links entity-framework-5 asp.net-mvc-4 elmah elmah.mvc