2012-01-25 9 views
11

कहें कि मेरे पास आईआईएस में होस्ट किया गया डब्ल्यूसीएफ ऐप है। और उस ऐप में मैं कोड की इस पंक्ति को चलाता हूं:आईआईएस होस्टेड ऐप में कंसोल आउटपुट कहां जाता है?

Console.WriteLine("Testing, testing 1 2 3"); 

यह कहां लिखा जाएगा? या यह अनदेखा है और बस खो गया है?

क्या आवश्यकता होने पर इसे पकड़ने के लिए कोई रास्ता है?

+0

का उपयोग यह IIS में होस्ट किया गया है, तो यह ASP.NET के रूप में ही है, तो इस पोस्ट रों यह आपके लिए जवाब दे सकता है http://stackoverflow.com/questions/137660/where-does-console-writeline-go-in-asp-net - मैं सिस्टम.डिग्नोस्टिक्स.डिबग.राइटलाइन का उपयोग करने की सलाह दूंगा, आपके पास विकल्प हैं जहां यह जाता है। –

उत्तर

15

कहीं भी नहीं। अधिक विशेष रूप से:

NullStream, जिसे "कोई बैकिंग स्टोर वाला स्ट्रीम" के रूप में परिभाषित किया गया है। सभी विधियां कुछ भी नहीं करती हैं या कुछ भी नहीं लौटाती हैं। यह एक आंतरिक वर्ग से Stream है। निम्नलिखित कोड माइक्रोसॉफ्ट के स्रोत कोड से लिया गया है।

असल में, जब Console लिखने तरीकों में से एक फोन पहले समय है, एक फोन Windows API समारोह GetStdHandle को "मानक आउटपुट" के लिए किया जाता है। यदि कोई हैंडल वापस नहीं किया गया है तो NullStream बनाया गया है और इसका उपयोग किया गया है।

यहाँ से उद्धृत: https://stackoverflow.com/a/2075892/12744

वास्तव में, एक ही जवाब पर भी अपने प्रश्न के दूसरे भाग को संबोधित करने के लिए चला जाता है:

वास्तव में कंसोल आउटपुट पुनर्निर्देशित करने के लिए, परियोजना प्रकार की परवाह किए बिना ,

Console.SetOut(New System.IO.StreamWriter("C:\ConsoleOutput.txt")), 
संबंधित मुद्दे