防止应用程序事件日志中的Asp.net MVC2异常

时间:2010-11-05 14:40:58

标签: asp.net-mvc-2 exception event-log

自从升级到ASP.NET MVC2以来,我们注意到Windows应用程序事件日志中包含以下条目:

Event code: 3005 
Event message: An unhandled exception has occurred. 
Event time: 11/4/2010 3:29:16 PM 
Event time (UTC): 11/4/2010 7:29:16 PM 
Event ID: 2039870297302976340236
Event sequence: 6422
Event occurrence: 864 
Event detail code: 0 

...
Exception information: 
Exception type: ArgumentException 
Exception message: The parameters dictionary contains a null entry for parameter 'someParam' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Index(System.String, Int32)' in 'SomeNameSpace.SomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter.

请求很糟糕,所以我们收到了这个错误。很好,但我想在我的应用程序中处理这个问题,而不是让它泡出事件日志。有什么建议吗?

修改

看看this question的答案,设置Route Constraints来处理这个问题会更明智吗?

1 个答案:

答案 0 :(得分:1)

这不是ASP.NET MVC特有的,但它是任何ASP.NET应用程序的正常行为。记录所有未公开的异常,这似乎是正常的。所以你需要处理它们。对于这种类型的异常,您确实可以使用路由约束并具有自定义404和500错误页面。

Global.asax中还有Application_Error处理程序,可用于处理异常。对于控制器级异常,有[HandleError]动作过滤器。