2011-03-17 8 views
6

मेरे पास मेरे एप्लिकेशन के भीतर एक रिमोटिंग-प्रकार सेट अप है जहां मैं TargetInvocationExceptions से बचता हूं और आंतरिक अपवाद को पकड़ता हूं। मैंने Exception कक्षा पर आंतरिक PrepForRemoting विधि को आह्वान विधि से स्टैक ट्रेस को संरक्षित करने के लिए आमंत्रित किया है।मौत की एएसपी.नेट पीले स्क्रीन - इसे स्टैक ट्रेस कहां से मिलता है?

"\ r \ n सर्वर स्टैक ट्रेस:। \ R \ n

ZBooking.Environment.Services.BookingService पर

<> c_ DisplayClass9

यह सही ढंग से संपत्ति स्टैक ट्रेस के निर्माण के लिए प्रकट होता है `1.b _5 (BookingSlot पी) C: \ देव \ ZBookings \ कोर \ ZZBookings.Services \ BookingService.cs: लाइन 79 \ r \ n

पर System.Linq.Enumerable.All [TSource]

(IENumerable'1 स्रोत, Func'2 predicate) \ r \ n

ZBookings.BookingService.MoveBooking [TBookingType] सी में (Int32 bookingId,> IEnumerable`1 bookingSlots) पर: \ ZBookings.Services \ \ देव \ ZBooking.Client \ कोर BookingService.cs: लाइन 79 \ r \ n \ r \ n

अपवाद पुनर्विचार [0]: \ r \ n ZBookings.BookingService पर। <> c_ DisplayClass9`1.b _5 (BookingSlot पी) C: \ देव \ ZBookings \ कोर \ ZBookings.Services \ BookingService.cs: लाइन 79 \ r \ n

System.Linq.Enumerable पर सब के सब [TSource] (IEnumerable'1 स्रोत, Func'2 विधेय) \ r \ n

ZBookings.BookingService.MoveBooking [TBookingType] सी में (Int32 bookingId, IEnumerable`1 bookingSlots) पर: \ देव \ ZBookings \ core \ ZBookings.Services \ BookingService.cs: line 79 "

हालांकि, जब यह मानक ASP.NET द्वारा प्रदर्शित होता है स्क्रीन llow यह है:

[NullReferenceException: ऑब्जेक्ट संदर्भ एक वस्तु का एक उदाहरण के लिए सेट नहीं।] ZBooking.ApplicationServices.MethodMarshaller.Invoke सी में (प्रतिनिधि डेल, ZipIdentity zipIdentity, [] args वस्तु): \ देव \ ZBooking \ core \ ZBooking.AplicationServices \ MethodMarshaller.cs: 147 ज़बुकिंग। अनुप्रयोग सेवा। MethodMarshaller.Invoke (डीएलजी, ZipIdentity zipIdentity, ऑब्जेक्ट [] args) C: \ dev \ ZBooking \ core \ ZBooking.AplicationServices \ MethodMarshaller में .cs: ​​105 ZBooking.AplicationServices.MethodMarshaller.Call (Func'3 del, T1 arg1, T2 arg2, ZipIdentity zipIdentity) सी: \ dev \ ZBooking \ core \ ZBooking.AplicationServices \ MethodMarshaller.cs: 72
.. ।आदि।

ग्लोबल.एक्सएक्स में Application_Error पर Server.GetLastError(); पर कॉल करना सही स्टैक ट्रेस दिखाता है। पीले रंग की स्क्रीन स्टैक ट्रेस कहां से आ रही है?

+0

क्या आप वाकई एक द्वितीयक अपवाद नहीं है जो पहले "कवर" करता है? दो अपवाद बहुत अलग दिखते हैं।क्या आप MethodMarshaler की लाइन 147 पर ब्रेकपॉइंट डाल सकते हैं? (और 105 और 72) और देखें क्या होता है? और शायद आप डीबगर को सभी NullReferenceException पर रोकने का प्रयास कर सकते हैं। – xanatos

+0

यह बात है। एक अपवाद दूसरे को कवर कर रहा है - मैं सही आंतरिक अपवाद को फिर से फेंक रहा हूं और फिर वहां से अपने स्टैक ट्रेस को फिर से लिख रहा हूं। स्टैक ट्रेस री-राइट काम करता है लेकिन वाईएसओडी तक बुलबुला नहीं दिखता है। –

उत्तर

6

एएसपी.नेट की मौत की पीली स्क्रीन अपवाद से StackTrace का निर्माण करके स्टैक ट्रेस प्राप्त करती है। यह StackTrace(Exception, Boolean) कन्स्ट्रक्टर का उपयोग करता है। यह StackTrace ऑब्जेक्ट द्वारा आपूर्ति की गई StackFrame वस्तुओं को चलाकर स्टैक को डंप करता है। यह Exception.StackTrace संपत्ति का उपयोग नहीं करता है।

+0

यह वादा करता है। ऐसा लगता है कि 'आंतरिक स्थैतिक बाहरी शून्य' GetStackFramesInternal (StackFrameHelper sfh, int iSkip, अपवाद ई); "कॉल - मुझे यह देखने के लिए एसएससीएलआई पर एक नज़र डालेंगे कि यह किस विधि को आमंत्रित करता है। –

+0

इस बीच, मुझे लगता है कि सवाल, "पीले रंग की स्टैक ट्रेस कहां से आ रही है?" का उत्तर दिया गया है। ;) आपके बाकी का लाभ, मुझे डर है, लंबा हो सकता है। –

+0

प्वाइंट लिया - उत्तर दिया :) –

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