मैं निश्चित रूप से कैप्चर करना चाहता हूं, लेकिन सभी नहीं, डीबगिंग उद्देश्यों के लिए मेरे आवेदन में HttpWebRequest ट्रैफिक। यह आईआईएस द्वारा होस्ट की गई एक वेब सेवा है।System.Net (HttpWebRequest) फ़ाइलों या app.config का उपयोग किए बिना ट्रेसिंग?
मैंने How to: Configure Network Tracing पढ़ा है। यह बहुत अच्छा काम करता है, लेकिन मैं फ़ाइल सिस्टम, डेटा संवेदनशीलता इत्यादि पर संभावित अनुमति समस्याओं के कारण ट्रेस को फ़ाइल में निर्देशित नहीं करना चाहता हूं। मैं सीधे कुछ ऐसी मेमोरी पर कब्जा करना चाहता हूं जिसे मैं बाद में निरीक्षण कर सकता हूं या एन्क्रिप्ट और ईमेल। अधिमानतः, इसमें app.config फ़ाइल में कोई भी परिवर्तन शामिल नहीं होगा।
मैंने निम्नलिखित की कोशिश की, लेकिन जाहिर है कि मैं TextWriterTraceListener को System.Net में बांधने के लिए एक कदम खो रहा हूं। मैं अपने स्ट्रिंगवाइटर में System.Net ट्रैफ़िक कैप्चर कैसे कर सकता हूं?
StringWriter sw = new StringWriter();
TextWriterTraceListener myListener = new TextWriterTraceListener(sw);
Trace.Listeners.Add(myListener);
HttpWebRequest req = (HttpWebRequest) WebRequest.Create("http://www.microsoft.com");
HttpWebResponse resp = (HttpWebResponse) req.GetResponse();
Stream s = resp.GetResponseStream();
byte[] buf = new byte[4096];
while (s.Read(buf, 0, buf.Length) > 0) ;
s.Close();
myListener.Flush();
sw.Flush();
संपादित करें: विशेष रूप से, मुझे लगता है कि सिवाय मैं उत्पादन network.log पर जाने के लिए नहीं करना चाहते, कार्यावधि में इस के बराबर करना चाहते हैं, मैं इसे एक स्ट्रिंग बफर मैं निर्धारित किया है के लिए जाना चाहते इस उद्देश्य के लिए।
<configuration>
<system.diagnostics>
<sources>
<source name="System.Net.Sockets" tracemode="includehex">
<listeners>
<add name="System.Net.Sockets" type="System.Diagnostics.TextWriterTraceListener" initializeData="network.log" />
</listeners>
</source>
</sources>
<switches>
<add name="System.Net.Sockets" value="Verbose"/>
</switches>
<trace autoflush="true" />
</system.diagnostics>
</configuration>
: http:
अपने वीबी-कोड के साथ, सी # करने के लिए अनुकूलित मैं इस विधि लिखा है:
वर्ग ModifiedTraceFilter // vbcity। कॉम/फ़ोरम/topic.asp? tid = 140182 एक ही चीज़ के लिए पूछ रहा है। माइक्रोसॉफ्ट का जवाब निश्चित रूप से निराशाजनक है। –