2012-11-01 17 views
23

मैं Azure के लिए नया हूं। क्या किसी को पता है कि Azure वेब पर तैनात वेबसाइट पर विस्तृत त्रुटि संदेश कैसे प्राप्त होता है?Azure वेबसाइट पर त्रुटि विवरण कैसे प्राप्त करें

मैं वेबसाइट और अब पंजीकरण और लॉगिन (पोस्ट) को SimpleMembership जोड़ा दिखा रहे हैं

क्षमा करें, एक त्रुटि आपका अनुरोध संसाधित करते हुई।

मैं अपने घर कंप्यूटर पर डीबी से कनेक्ट कर रहा हूं (कनेक्शन के साथ कोई समस्या नहीं है)।

LogFiles एज़ूर एफटीपी सर्वर पर फ़ोल्डर में कुछ फाइलें हैं लेकिन मुझे नहीं पता कि इस जानकारी का उपयोग कैसे करें। मुझे लगता है मैं नीला पर YellowScreen प्राप्त कर सकते हैं चाहते हैं ...

उत्तर

24

आपके पास दो विकल्प:

सबसे पहले, आप अपने वेब config में कस्टम त्रुटियों बंद कर सकते हैं। यह त्वरित और गंदे दृष्टिकोण है लेकिन कम से कम आपको वह जानकारी मिल जाएगी जो आप खोज रहे हैं। जब आप पूरा कर लें तो कस्टम त्रुटियों को वापस चालू करना सुनिश्चित करें। नोट: यह विधि पूरी दुनिया में आपका स्टैकट्रैक प्रदर्शित करेगी।

<configuration> 
    <system.web> 
    <customErrors mode="Off" /> 
    </system.web> 
</configuration> 

दूसरा, आप दूरस्थ रूप से डेस्कटॉप पर अपनी तैनात मशीन में, आईआईएस प्रबंधक पर जा सकते हैं, और अपनी साइट पर ब्राउज़ कर सकते हैं। एक बार जब आप वहां हों, तो त्रुटि का पुनरुत्पादन करें और आपको उस मौत की पीली स्क्रीन मिलेगी जिसे आप ढूंढ रहे हैं। इसके लिए आपको Enable Detailed Errors

+2

मैं विकल्प 2 सूची होगा पहले, सिर्फ इतना है कि कस्टम त्रुटियों को अक्षम और स्टैकट्रेस पेश तथ्य पर जोर देना दुनिया के लिए आम तौर पर एक बुरा विचार है। विजुअल स्टूडियो से ईवेंट लॉग देखने के लिए Azure SDK टूल्स को रिमोट या उपयोग करें। – angularsen

+0

विकल्प 2 केवल वीएम पर उपलब्ध होगा हालांकि सही? यदि आप Azure वेबसाइट्स के रूप में तैनात हैं तो आपके पास आईआईएस तक पहुंच नहीं है? – Shumii

+0

मैं आपको पुरानी या नए पोर्टल में एक क्षेत्र की अपेक्षा करता हूं ताकि आप त्रुटियों को दिखा सकें (अच्छी तरह से यह आपको गिनती देता है लेकिन विवरण नहीं)। असल में मैं EventViewer – Shumii

0

डीबी में एक टेबल बनाएं जहां आप त्रुटि लॉग स्टोर करेंगे, मैं लॉग नामक ईएफ और टेबल का उपयोग कर रहा हूं। में App_Start फ़ोल्डर ऐड FilterConfig.cs में

public class MyAppExceptionFilter : IExceptionFilter 
    { 
     private MyApp.Models.ApplicationDbContext db = new Models.ApplicationDbContext(); 

     public void OnException(ExceptionContext context) 
     { 
      Exception ex = context.Exception; 
      Log log = new Log(); 
      log.DateTime = DateTime.Now; 
      log.LogText = "Exception happened, text:" + ex.Message; 
      try 
      { 
       log.LogText +="User details:"+context.HttpContext.User.Identity.Name; 
      } 
      catch 
      { 
       log.LogText += "User details:none"; 
      } 
      db.Logs.Add(log); 
      db.SaveChanges(); 
     } 
    } 

:

एक कक्षा बनाएं

public static void RegisterGlobalFilters(GlobalFilterCollection filters) 
     { 
      filters.Add(new HandleErrorAttribute()); 
      *filters.Add(new MyAppExceptionFilter());* 
     } 
+0

एल्माह इस के लिए बेहतर काम करता है, पहिया को फिर से शुरू करने वाला कोई बिंदु नहीं। यदि आप वहां कुछ बेहतरीन समाधान का भुगतान करते हैं। – rolls

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