我在我的 mvc 项目中使用 ELMAH 来记录错误。我意识到有时没有记录错误。因此,我将语句包装在 try..catch 中并调用ErrorSignal.FromCurrentContext().Raise(ex);
,但没有针对该特定错误再次记录任何内容。所以我尝试进入 ELMAH 源代码(使用 Reflector VS addin)。我在 elmah 中看到了这个异常:
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)
实际源代码:this._form = CopyCollection(request.Form);
in public Error(System.Exception e, HttpContext context)
in Error.cs
。和 CopyCollection 方法:
private static NameValueCollection CopyCollection(NameValueCollection collection)
{
if ((collection != null) && (collection.Count != 0))
{
return new NameValueCollection(collection);
}
return null;
}
所以 .Net 不允许从危险的表单数据创建新的 NameValueCollection。我的应用程序中有很多 Html 编辑器,我希望 ELMAH 在任何情况下都能记录错误。
我能做些什么?