मैं एक डब्ल्यूसीएफ सेवा का निदान करने की कोशिश कर रहा हूं जो अपेक्षाकृत सरल सेवा होस्ट प्रक्रिया (Service.exe) में स्वयं-होस्ट किया गया है।डब्ल्यूसीएफ: मैं संदेश निकायों का पता कैसे लगा सकता हूं?
मैं Service.exe.config इस प्रकार कॉन्फ़िगर किया है:
<?xml version="1.0" ?>
<configuration>
<system.diagnostics>
<sources>
<source name="System.ServiceModel"
switchValue="All"
propagateActivity="true">
<listeners>
<add name="traceListener"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData= "c:\temp\Service.svclog" />
</listeners>
</source>
</sources>
</system.diagnostics>
<system.serviceModel>
<diagnostics>
<messageLogging maxMessagesToLog="1"
maxSizeOfMessageToLog="2147483647"
logEntireMessage="true"
logMessagesAtServiceLevel="true"
logMalformedMessages="true"
logMessagesAtTransportLevel="true">
</messageLogging>
</diagnostics>
</system.serviceModel>
<startup>
<supportedRuntime version="v4.0"
sku=".NETFramework,Version=v4.0" />
</startup>
</configuration>
जब मैं जिसके परिणामस्वरूप svclog फ़ाइल को देखो, मैं कई ट्रेस घटनाओं लॉग किया जा रहा देखने के (मैं उम्मीद सिर्फ पहला संदेश लॉग इन करने की), और किसी भी संदेश का पता लगाया जा रहा संदेश संदेश (केवल शीर्षलेख) दिखाता है।
मुझे यकीन है कि मुझे यहां कुछ आसान याद आना चाहिए, लेकिन मुझे यह नहीं दिख रहा है।
अद्यतन: जब मैं डब्ल्यूसीएफ कॉन्फ़िगर संपादक को देखता हूं, तो "डायग्नोस्टिक्स" के तहत दो अनुभाग होते हैं: संदेश लॉगिंग और ट्रेसिंग। जब मैं "EnableMessageLogging" लिंक पर क्लिक, मेरे कॉन्फ़िग फ़ाइल अद्यतन हो जाता है:
<system.diagnostics>
<sources>
<source propagateActivity="true" name="System.ServiceModel" switchValue="All">
<listeners>
<add type="System.Diagnostics.DefaultTraceListener" name="Default">
<filter type="" />
</add>
<add initializeData="c:\temp\MessageBodyTracing.svclog" type="System.Diagnostics.XmlWriterTraceListener"
name="traceListener">
<filter type="" />
</add>
</listeners>
</source>
<source name="System.ServiceModel.MessageLogging" switchValue="Warning, ActivityTracing">
<listeners>
<add type="System.Diagnostics.DefaultTraceListener" name="Default">
<filter type="" />
</add>
<add name="ServiceModelMessageLoggingListener">
<filter type="" />
</add>
</listeners>
</source>
</sources>
<sharedListeners>
<add initializeData="c:\users\me\documents\visual studio 2010\projects\messagebodytracing\messagebodytracing\app_messages.svclog"
type="System.Diagnostics.XmlWriterTraceListener, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
name="ServiceModelMessageLoggingListener" traceOutputOptions="Timestamp">
<filter type="" />
</add>
</sharedListeners>
</system.diagnostics>
मुझे लगता है कि स्रोत System.ServiceModel.MessageLogging नामित कुंजी है - मैं संदेश के किसी भी दस्तावेज में पता लगाने कि नहीं देखा था .. । जोड़ने
में MessageLogging क्यों 'maxMessagesToLog =" 1 "' है? क्या यह उद्देश्य पर है? –
हां, मैं देखना चाहता था कि अनुभाग में कुछ भी प्रभावी हो रहा था, और ऐसा प्रतीत नहीं होता है। –
lesscode