Simple Indigo Tracing

I was somewhat confused by some of the trace messages I was getting back from a simple Indigo service and client I've been playing with so I tried various combinations of config attribute values to see what results I'd get.
 
I using the diagnostics element under system.serviceModel and playing with just three of the attributes on the child messageLogging element;

<system.serviceModel>
  <diagnostics>
    <messageLogginglogEntireMessage ="xs:boolean"
                            logMessagesAtServiceLevel ="xs:boolean"
                            logMessagesAtTransportLevel ="xs:boolean"  />
  
</diagnostics>
</system.serviceModel>
 
Setting logEntireMessage='true' gives you the SOAP body as well as the message headers. Setting logEntireMessage='false' only logs the SOAP headers.
 
Setting logMessagesAtTransportLevel = 'true' gives you what actually gets sent over the wire.
 
Setting logMessageAtServiceLevel='true' gives you what the Message object looks like by the time your service code is running. For my simple service, these trace messages have headers that are NOT present in the transport level messages (wsa:To/wsa:Action).

It looks like you have to set at least one of the latter two attributes to 'true' in order to get trace messages to be generated.
 
Oh, and the log messages appear in

    %WINDIR%\System32\LogFiles\Messages
 
There are more sophisticated ways of configuring Indigo to generate trace information, the above just covers a simple bare bones way of getting trace messages.

Posted May 09 2005, 10:26 AM by martin-gudgin

Comments

Steve Rodgers wrote re: Simple Indigo Tracing
on 05-09-2005 5:11 PM
I'm sure I've seen something like this before in a previous life (aka Simon's bomb lab):

Client apis used:
socket();
bind();
listen();
accept();

Server api used:
socket();
connect();

sample client output:
runtime error C56287 Pure virtual function call dispatch failure



Dan Roth wrote re: Simple Indigo Tracing
on 05-18-2005 7:42 AM
A comment regarding your statement about the logged message having headers that are NOT in the transport level messages. Some message information (e.g. addressing) are stored in the http transport headers, not the soap message. By the time the incoming message gets to your service, we have stored this information in the message object's "message headers". When we log the message, those headers get logged with it.

As you noted, when logging at the transport layer, such headers to not get logged.

Musings from Gudge wrote More on simple tracing in Indigo
on 05-21-2005 7:25 PM
Musings from Gudge wrote More on simple tracing in Indigo
on 05-21-2005 7:26 PM
Chris Scanlon wrote re: Simple Indigo Tracing
on 12-30-2005 5:32 PM
I totally agree with what you're saying. I wish more people felt this way and took the time to express themselves. Keep up the great work.

Chris Scanlon

http://www.tracingimprint.com

Add a Comment

(required)  
(optional)
(required)  
Remember Me?