प्राचीन प्रश्न लेकिन यदि आपके पास डिफ़ॉल्ट श्रोता परिभाषित नहीं है तो यह सामान्य रूप से एक संदेश संवाद प्रदर्शित नहीं करेगा। मैंने पुष्टि नहीं की है कि यह वास्तव में आग लगती है और सिर्फ खाया जाता है (मुझे संदेह है कि यह मामला है) या क्या यह बिल्कुल भी आग नहीं लगाता है।
लेकिन किसी भी तरह से यह संवाद नहीं दिखाएगा।
के लिए
DefaultTraceListener
डॉक्स से जोर और विफल विधि के लिए संदेश बॉक्स के प्रदर्शन DefaultTraceListener की उपस्थिति पर निर्भर कहता है। यदि DefaultTraceListener श्रोताओं संग्रह में नहीं है, तो संदेश बॉक्स प्रदर्शित नहीं होता है।
DefaultTraceListener, तत्व द्वारा हटाया जा सकता तत्व द्वारा, या श्रोताओं संपत्ति पर साफ़ विधि को फोन करके (System.Diagnostics.Trace.Listeners.Clear())।
आप अपने श्रोताओं की जाँच करें और नीचे की तरह कुछ कोड का उपयोग करके प्रकार प्राप्त कर सकते हैं:
var listeners = new TraceListener[Debug.Listeners.Count];
Debug.Listeners.CopyTo(listeners, 0);
foreach (var listener in listeners) {
Debug.WriteLine("Name : {0} of type : {1}", listener.Name, listener.GetType());
}
आप नहीं है, तो एक "डिफ़ॉल्ट" कहा जाता है, Debug.Assert
चुपचाप असफल हो जायेगी।
जहाँ तक विन्यास चला जाता है के रूप में, यह मानते हुए कि एक श्रोता नामित डिफ़ॉल्ट उपलब्ध है काम करेंगे:
<system.diagnostics>
<trace autoflush="false">
<listeners>
<add name="bigEarsListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="TracingInfo.log"/>
</listeners>
</trace>
</system.diagnostics>
इस रूप में काम करेंगे:
<system.diagnostics>
<trace autoflush="false">
<listeners>
</listeners>
</trace>
</system.diagnostics>
यह मानते हुए एक श्रोता नामित डिफ़ॉल्ट उपलब्ध है काम करेंगे हम स्पष्ट रूप से हमारे डिफ़ॉल्ट को परिभाषित करते हैं:
<system.diagnostics>
<trace autoflush="false">
<listeners>
<remove name="Default" />
<add name="Default" type="System.Diagnostics.DefaultTraceListener" />
<add name="bigEarsListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="TracingInfo.log"/>
</listeners>
</trace>
</system.diagnostics>
यह WONT कार्य:
<system.diagnostics>
<trace autoflush="false">
<listeners>
<remove name="Default" />
<add name="bigEarsListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="TracingInfo.log"/>
</listeners>
</trace>
</system.diagnostics>
आप अपने web.config में एक निदान अनुभाग फिर डिफ़ॉल्ट से हटाया जा सकता है हो रही है या ओवरराइड नहीं कुछ वी.एस. एक्सटेंशन आदि से है, तो यह अनुभाग जोड़ने के लिए इसे वापस अपेक्षित व्यवहार में लाना चाहिए नहीं है, तो।
क्या आपने दो बार जांच की है कि आप रिलीज़ संस्करण नहीं चला रहे हैं? – ChrisF
परावर्तक के साथ अपना डीएल/एक्सई कैसे खोलें और देखें कि वास्तव में कोड वास्तव में कोड में है या नहीं? और क्या आपकी असेंबली वास्तव में उस स्थान से भरी हुई है जो आपको लगता है? शायद एक और समय जांचें कि आप डीबग संस्करण का उपयोग कर रहे हैं। –
@ChrisF: जैसा कि मैंने कहा, हाँ। तीन बार ... :-) –