加入收藏 | 设为首页 | 会员中心 | 我要投稿 商洛站长网 (https://www.0914zz.com/)- AI应用、CDN、边缘计算、云计算、物联网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc C 未在ELMAH中记录的错误

发布时间:2023-12-16 12:52:22 所属栏目:asp.Net 来源:DaWei
导读: 我在我的mvc项目中使用ELMAH来记录错误.我意识到有时错误没有记录.所以我将语句包装在try..catch中并调用ErrorSignal.FromCurrentContext().Raise(ex);但是没有为该特定错误再次记录.所以我

我在我的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);在Error.cs中的公共错误(System.Exception e,HttpContext上下文)中.和CopyCollection方法:

private static NameValueCollection CopyCollection(NameValueCollection collection) { if ((collection != null) && (collection.Count != 0)) { return new NameValueCollection(collection); } return null; }

因此.Net不允许从危险的表单数据创建新的NameValueCollection.我的应用程序中有很多Html编辑器,我希望ELMAH能够在任何情况下记录错误.

我能做什么?

解决方法 不幸的是,this is due to a breaking change introduced by ASP.NET 4.0.现在的解决方法是通过在配置中添加以下内容来要求ASP.NET恢复到旧行为: <httpRuntime requestValidationMode="2.0" />

有关更完整的讨论,请参阅ELMAH project site上的issue #217.

(编辑:商洛站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章