2010-11-05 4 views
1

Depuis la mise à niveau vers ASP.NET MVC2, nous avons remarqué le journal des événements d'application Windows est plein d'entrées comme suit:Prévention Asp.net MVC2 Exceptions dans l'application du journal des événements

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. 

La demande est mauvais, donc nous obtenons cette erreur. Super, mais je voudrais gérer cela dans mon application plutôt que de lui permettre de faire exploser le journal des événements. Aucune suggestion?

EDIT

Regardez la réponse à this question, serait-il plus judicieux de mettre en place Route Constraints pour faire face à ce problème?

Répondre

1

Ce n'est pas quelque chose de spécifique à ASP.NET MVC mais c'est le comportement normal de n'importe quelle application ASP.NET. Toutes les exceptions non gérées sont enregistrées, ce qui semble normal. Donc vous devez les gérer. Pour ce type d'exception, vous pouvez en effet utiliser des contraintes d'itinéraire et avoir des pages d'erreur personnalisées 404 et 500.

Il y a aussi le gestionnaire Application_Error dans Global.asax qui pourrait être utilisé pour gérer les exceptions. Pour les exceptions de niveau contrôleur, il y a le filtre d'action [HandleError].

Questions connexes