エラーを記録するために、mvc プロジェクトで ELMAH を使用しています。エラーが記録されていないことがあることに気付きました。そのため、ステートメントを try..catch でラップして呼び出しErrorSignal.FromCurrentContext().Raise(ex);
ましたが、その特定のエラーについては何も記録されません。そこで、ELMAH ソース コードにステップ インしようとしました (Reflector VS アドインを使用)。そして、エルマでこの例外を見ました:
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 にエラーを記録させたいと考えています。
私に何ができる?