2012-06-19 12 views
11

मैं यहाँ की तरह अपवाद फ़िल्टर लागू किया: http://www.asp.net/web-api/overview/web-api-routing-and-actions/exception-handling और विश्व स्तर पर यह पंजीकृत, माइक्रोसॉफ्ट या stackoverflow उपयोगकर्ताओं (How to add global ASP.Net Web Api Filters?) की व्याख्या की तरह।वेब एपीआई: 'ग्लोबल' फिल्टर काम नहीं कर रहा (ExceptionFilter)

public static void RegisterWebApiFilters(System.Web.Http.Filters.GlobalFilterCollection filters) 
{ 
//other filters 
    filters.Add(new MyExceptionFilter()); 
} 

लेकिन अगर मैं एक अपवाद फेंक, मेरे विधि कहा जाता है नहीं है। मेरी अपवाद-हैंडलिंग विधि केवल तभी कॉल की जाती है जब मैं नियंत्रक-विधि में विशेषता [MyExceptionFilter] जोड़ता हूं, लेकिन मुझे आशा है कि मैं वैश्विक रूप से फ़िल्टर को पंजीकृत करके सभी विधियों से बच सकता हूं।

मैंने फ़िल्टर के लिए ऑर्डर सेट करने का प्रयास किया, लेकिन इसका कोई प्रभाव नहीं पड़ा।


संपादित करें: मैंने ध्यान दिया है, कि नए Wep एपीआई आर सी में विधि "RegisterGlobalFilters" कहा जाता है और इस MVC फिल्टर संग्रह हो रहा है।

अगर मैं

GlobalConfiguration.Configuration.Filters.Add(new MyExceptionFilter()); 

यह काम करता है कहते हैं। यह वेब एपीआई के लिए संग्रह है।

ऐसा लगता है कि मैं वेब एपीआई के लिए मेरे अपने "FilterConfig" वर्ग के निर्माण के लिए है ...

उत्तर

16

की तरह मैं अपने प्रश्न में उल्लेख किया: अलग फिल्टर संग्रह कर रहे हैं। एमवीसी के लिए एक और वेब एपीआई के लिए एक।

आप, वेब एपीआई के लिए फ़िल्टर जोड़ें Global.asax के लिए कोड की इस पंक्ति जोड़ने

GlobalConfiguration.Configuration.Filters.Add(new MyExceptionFilter()); 
+1

धन्यवाद करना चाहते हैं, मुझे सही दिशा में इशारा किया। इन सभी वैश्विक फ़िल्टर संग्रहों में थोड़ा सा डाफ्ट ... ..और अभी भी सामान्य नियंत्रकों के लिए पंजीकृत मेरा अपवाद फ़िल्टर काम नहीं करता है। Grr। –

+1

हाँ मेरे पास वह लाइन है लेकिन यह अभी भी कुछ मामलों में गोलीबारी नहीं कर रही है .. मैं इसे डीबगर में शुरू कर सकता हूं, लेकिन यह मेरे वेब एपीआई –

+0

में हर अपवाद पर ट्रिगर नहीं हुआ है WebAPIv2 [this] (http://stackoverflow.com/ए/26677 9 8 9/2 9 44723) मेरे लिए काम किया – tgarcia

संबंधित मुद्दे