दुर्भाग्य से एरिक Leschinski के commet में दिए गए लिंक केवल पता चलता System.Web.Mvc.IExceptionFilter इंटरफ़ेस, और नहीं System.Web.Http.Filters.IExceptionFilter इंटरफ़ेस को लागू करने के लिए कैसे। पहला नियमित एमवीसी नियंत्रकों में प्रयोग किया जाता है, जबकि दूसरे लक्ष्य ApiCotrollers।
यहाँ एक सरल वर्ग उदाहरण मैं बिना क्रिया अपवाद मेरी ApiControllers में फेंक दिया प्रवेश करने के लिए साथ आए हैं:
public class ExceptionLoggerFilter: IExceptionFilter
{
public ExceptionLoggerFilter(Logger logger)
{
this.logger = logger;
}
public bool AllowMultiple { get { return true; } }
public Task ExecuteExceptionFilterAsync(
HttpActionExecutedContext actionExecutedContext,
CancellationToken cancellationToken)
{
return Task.Factory.StartNew(() =>
{
logger.Error("web service error", actionExecutedContext.Exception);
}, cancellationToken);
}
private Logger logger;
}
और यह सब आप इस फिल्टर को सक्षम करने के क्या करना है तुम्हारा Global.asax Application_Start विधि में इसे पंजीकृत है :
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
// allocate filter and add it to global configuration
var exceptionLogger = new ExceptionLoggerFilter(Container.Get<Logger>());
GlobalConfiguration.Configuration.Filters.Add(exceptionLogger);
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
}
मुझे आशा है कि इससे अन्य googlers वहां मदद मिलेगी!
स्रोत
2013-10-20 17:27:25
यह आदमी कैसे MVC में एक वैश्विक अपवाद संचालक बनाने के लिए पर एक बहुत अच्छा पूर्वाभ्यास है: http://www.prideparrot.com/blog/archive/2012/5/exception_handling_in_asp_net_mvc –