Ich verwende ELMAH in meinem MVC-Projekt, um Fehler aufzuzeichnen. Ich habe festgestellt, dass manchmal Fehler nicht aufgezeichnet wurden. Also habe ich die Anweisungen in try..catch eingepackt und ErrorSignal.FromCurrentContext().Raise(ex);
aufgerufen, aber nichts wird wieder für diesen spezifischen Fehler aufgezeichnet. Also habe ich versucht, in den ELMAH Quellcode zu treten (mit Reflector VS Addin). Und ich sah, diese Ausnahme in Elmah:Fehler nicht in ELMAH aufgezeichnet
A potentially dangerous Request.Form value was detected from the client (Text="<br>").
StackTrace: at System.Web.HttpRequest.ValidateString(String value, String collectionKey, RequestValidationSource requestCollection)
tatsächliche Quellcode: this._form = CopyCollection(request.Form);
in public Error(System.Exception e, HttpContext context)
in Error.cs
. und CopyCollection Methode:
private static NameValueCollection CopyCollection(NameValueCollection collection)
{
if ((collection != null) && (collection.Count != 0))
{
return new NameValueCollection(collection);
}
return null;
}
So .Net erlaubt keine neue Namevaluecollection von gefährlich Formulardaten zu schaffen. Ich habe eine Menge HTML-Editoren in meiner Anwendung und möchte, dass ELMAH Fehler in jeder Situation aufzeichnet.
Was kann ich tun?
Ich habe festgestellt, dass die Ausgabe # 217 im September 2012 behoben wurde. Gibt es Pläne, eine neue Version von Elmah zu veröffentlichen? –
@AtifAziz PLUSONE! Bitte drücken, um zu nuget? Das wurde vor langer Zeit gepatcht ... Wenn das Problem ist, dass man Framework> = 4 braucht, könnte es vielleicht ein v4 nugget-Paket geben? –