2011-09-29 7 views
5

मैं एज़ूर में एक वेब भूमिका निभाता हूं। यह विकास ऐप कपड़े में स्थानीय रूप से ठीक चल रहा है, लेकिन जब एज़ूर में तैनात किया जाता है तो चुपचाप विफल रहता है (किसी भी अनुरोध के लिए बिल्कुल कोई प्रतिक्रिया नहीं)।Azure वेब भूमिका शुरू होने पर त्रुटियों को कैसे ट्रैक करें?

मुझे लगता है कि यह web.config के साथ कुछ समस्या है, लेकिन यह इतनी जल्दी हो रहा है कि यह पहले से ही होता है इससे पहले कि मैं वैश्विक असैक्स में नैदानिक ​​सामग्री स्थापित कर सकूं। जैसा कि कहा गया है, यह स्थानीय रूप से ठीक काम कर रहा है, लेकिन एज़ूर सिस्टम से बिल्कुल कोई प्रतिक्रिया नहीं है।

मैं यह कैसे पता लगा सकता हूं कि अपवाद टेक्स्ट, स्टैक ट्रेस, आईआईएस एप्लिकेशन सिस्टम त्रुटि लॉग या कुछ भी जो मुझे वास्तविक समस्या के बारे में संकेत दे सकता है, को हल करने में सक्षम होना गलत है?

उत्तर

4

वेब भूमिका में चलने वाली पूर्ण पहली चीज़ आपके आवेदन नहीं है, लेकिन आपके Azure प्रोजेक्ट में WebRole.cs में OnStart() विधि है। यह आपकी वेबसाइट पर नजर रखने के लिए कोड जोड़ने का स्थान है।

मानक तकनीक आपके एप्लिकेशन ट्रेस लॉग और विंडोज इवेंट लॉग को एज़ूर टेबल स्टोरेज में कॉपी करना है, साथ ही (यदि उपयुक्त हो) CPU उपयोग, आईआईएस आंकड़ों और आपके पास क्या है।

यह करने के लिए एक अच्छा परिचय यहाँ है: http://blog.bareweb.eu/2011/01/beginning-azure-diagnostics/

और बारीकियों आप अपने आवेदन में की आवश्यकता होगी पर विवरण के साथ एक अच्छा फ़ॉलो-अप यहां है: http://blog.bareweb.eu/2011/03/implementing-azure-diagnostics-with-sdk-v1-4/

जो Azure एसडीके 1.5 के लिए लागू बनी हुई है।

एक बार जब आप डायग्नोस्टिक्स को कैप्चर कर रहे हों, तो आप या तो उन्हें सीधे देखने के लिए विजुअल स्टूडियो का उपयोग कर सकते हैं, या आप Cerebrata Azure Diagnostics Manager जैसे टूल को स्वचालित रूप से ग्राफ़ और फ़िल्टर करने के लिए उपयोग कर सकते हैं। यह उपकरण किनारों के चारों ओर थोड़ा मोटा है (विशेष रूप से कई उदाहरणों के साथ बड़े सिस्टम के लिए: ग्राफ वास्तव में उपयोगी नहीं हैं) लेकिन इस समय जितना अच्छा हो उतना अच्छा है।


एक वैकल्पिक दृष्टिकोण दूरदराज के उदाहरण से कनेक्ट और Windows इवेंट लॉग और उस तरह का कुछ spelunking करने के लिए दूरस्थ डेस्कटॉप का उपयोग करने के लिए है। आप इंटरनेट एक्सप्लोरर ब्राउज़र का भी उपयोग कर सकते हैं जो दूरस्थ रूप से एप्लिकेशन से स्थानीय रूप से कनेक्ट करने के लिए है और किसी भी त्रुटि आदि को देख सकता है जो अन्यथा छुपाया जा सकता है।

व्यक्तिगत रूप से मैं केवल तभी ऐसा करूंगा जब डायग्नोस्टिक स्टोरेज तंत्र काम नहीं कर रहा है: बाहरी सर्वर के लिए संभावित सतह क्षेत्र को कम करने के लिए उत्पादन सर्वरों को वास्तव में दूरस्थ डेस्कटॉप पहुंच बंद करनी चाहिए।

+0

दूरस्थ डेस्कटॉप के साथ मैं त्रुटि का पता लगा सकता था। समस्या यह थी कि एप्लिकेशन स्टार्टअप पर एक असेंबली संदर्भ गलत था (गलत असेंबली संस्करण)। चूंकि ऐसा होने से पहले किसी भी अन्य कोड को निष्पादित किया जा सकता था, यह थोड़ा मुश्किल था लेकिन मुझे इसे sys लॉग से मिला। –

+0

अच्छी पकड़, अच्छा एक - मुझे एक बिंदु पर एक समान समस्या थी जिसमें रडार के नीचे एक दुष्ट 32-बिट असेंबली स्नीकिंग थी। –

0

डायग्नोस्टिक्स सेट करना आपके आवेदन में ट्रैकिंग त्रुटियों से निपटने का सबसे अच्छा दीर्घकालिक समाधान है। यदि आप कुछ और विज्ञापन चाहते हैं तो आप catch the errors and write them to blob storage या अपने light weight trace listener का उपयोग कर सकते हैं।

+0

समस्या यह थी कि एप्लिकेशन क्रैश हो गया * पहले * मैं किसी भी ट्रेसिंग कोड को लॉन्च कर सकता था। –

+0

आपको हर बार मिल जाएगा ... – knightpfhor

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