Hello
I am working on a project where i need to trace the flow of operations
through a class i am using for my web services.
This class inherits from SoapService (which inherits from
SoapReceiver).
I have sought to separate my test programme from the library with uses
SoapService (lets call it MySoapLibrary). However, when i seek to debug
MySoapLibrary, none of the debug commands i apply to my methods are
called, even though i know - though implicitly - that these methods
must be called.
For example, lets say i have a class called MathService : SoapService.
I have overridden a method called processmessage(), but i am not
"seeing it" being called.
public class MathService : SoapService{
public override void ProcessMessage(SoapEnvelope message)
{
Console.WriteLine("in pm");
base.ProcessMessage(message);
}
}
I have even put some Console.WriteLine statements in some of my
inherited methods, as shown above, but not even these messages are
printing.
Can someone show me where i am going wrong?
Thanks
irwin.williams - 05 Dec 2005 19:34 GMT
K, i figured out what i was doing wrong.
I was using a custom transport to handle the http communication for my
web service. (Aaron Skonnard's tutorial actually:
http://pluralsight.com/blogs/aaron/archive/2005/10/14/15571.aspx).
Part of the usage of it was to let my custom Service be wrapped in a
class called WsdlEnabledReceiver - which extended WebServiceReceiver.
I had intended for my Service to inherit from SoapService and use its
methods, however, by wrapping it in the WsdlEnabledReceiver the methods
i expected to be overriding were actually being used via the
WebServiceReceiver class - which is from a separate inheritance
heirarchy to SoapService and SoapReceiver.
This i removed the wrapping and was able to see my debugging
information.
Irwin.