all groups > dotnet web services > march 2007 >
You're in the

dotnet web services

group:

How can I get debug tracing from deserialization process?



How can I get debug tracing from deserialization process? beachdog
3/28/2007 5:01:04 AM
dotnet web services: I am building a client which accesses a web service (HTTP/SOAP), and I
think the response message is somehow not in agreement with my wsdl/
proxy class. I am able to access SOAP headers ok from the
deserialized response, but not elements in the body of the response.
Is there some way I can get some sort of debug tracing out of the
deserialization layer, or step thru it in debugger somehow, so I can
see how it is parsing the message and how it is handling the body
elements?
Re: How can I get debug tracing from deserialization process? beachdog
4/1/2007 7:19:35 PM
[quoted text, click to view]

No help? This seems pretty basic, I'm troubled if there isn't an
obvious technique or system facility that isn't easily at hand for
this.
Re: How can I get debug tracing from deserialization process? John Saunders
4/2/2007 1:04:33 PM
[quoted text, click to view]

Have you considered using a network monitor program? For instance, Microsoft
has just released Microsoft Network Monitor 3
(http://www.microsoft.com/downloads/details.aspx?familyid=AA8BE06D-4A6A-4B69-B861-2043B665CB53&mg_id=10109&displaylang=en).

Also, you could consider writing a Soap extension for tracing. See How to:
Implement a SOAP Extension at
http://msdn2.microsoft.com/en-us/library/7w06t139.aspx.

BTW, I'm a little concerned that you say you can't access the elements in
the body of the response. What did you try, and what result did you see?

John

Re: How can I get debug tracing from deserialization process? beachdog
4/2/2007 7:24:55 PM
On Apr 2, 1:04 pm, "John Saunders" <john.saunders at trizetto.com>
[quoted text, click to view]

Thanks very much for the tips - I will look into them.

When I said I that I couldn't access elements in the body of the
response, I meant that when I try to get the returned value from the
result, it is null; whereas I am able to retrieve values out of the
SOAP header. Here is the relevant section of code that I execute:

/* async */
IAsyncResult result = cs.BeginOutdialOperation("781",
"784", "1234", null, null);
result.AsyncWaitHandle.WaitOne(2000, false);
if (result.IsCompleted)
{
String status = cs.EndOutdialOperation(result);
String sessionID = cs.srcsessionIDValue.Text[0];

and what happens is that status is null -- the status element is the
only element carried in the body of the SOAP response. Meanwhile,
sessionID is properly populated -- and this is one of several elements
carried in the header of the response. I wrote about this problem in
a separate issue -- refer to this thread for details:

http://groups.google.com/group/microsoft.public.dotnet.framework.webservices/browse_frm/thread/68405aaf102e51c3?hl=en


Re: How can I get debug tracing from deserialization process? Latish Sehgal
4/2/2007 11:00:05 PM
Did you try to do any browser testing?
You can hit the web service from IE and pass the soap input, and then
examine if the returned results are in agreement with your class.
Re: How can I get debug tracing from deserialization process? beachdog
4/3/2007 4:40:07 AM
[quoted text, click to view]

No, I haven't tried that. Actually, I'm not sure how to do that. How
can I use IE to generate an HTTP POST and specify the content to be
carried in the POST request?
Re: How can I get debug tracing from deserialization process? Latish Sehgal
4/3/2007 8:33:16 AM
When you hit the webservice url using IE, doest it show you examples
of invocation?
AddThis Social Bookmark Button