Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsFree MagazinesWhite PapersSubmit Content
Discussion GroupsASP.NETWindows FormsLanguages.NET FrameworkVisual Studio.NET
Articles.NET FrameworkASP.NETToolsWindows Forms
.NET DirectoryOpen Source ProjectsUser GroupsWeb Resources
Related Topics
Visual Basic 6SQL ServerMS AccessOther DB ProductsMS Server ProductsMore Topics ...

.NET Forum / ASP.NET / Web Services / February 2006

Tip: Looking for answers? Try searching our database.

Problem in debugging a Web Service

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Sathyaish - 10 Feb 2006 22:51 GMT
I've written a Web Service that has main service class. Let's call the
main class that exposes the service interface as Service1.

So, we have:

public class Service1: System.Web.Services.WebService
{
   //code
}

I also have a business object that I am going to name BusinessObject,
for example's sake. This object is built in the service module/dll as a
class like so:

namespace BusinessObjects
{
   public class BusinessObject
   {

       private SomeOtherClass mReferenceTypeMember;
       //the field mReferenceTypeMember is exposed through a property
called ReferenceTypeMember

       //code
       public BusinessObject()
       {
               //nothing for now
        }
   }
}

Note that there is only one default ctor for the BusinessObject class
and that doesn't do anything.

I compile. Build a DLL. Then I add a test project to this project. I
add a Web Reference in the Test project to point to the asmx for the
above-mentioned service. The test project and the service are both a
part of the same solution. The test project is created to test the
service.

In the test project I do,

//call the default constructor
TheAliasOfTheWebReference.Service1.BusinessObject bo = new
TheAliasOfTheWebReference.Service1.BusinessObject();

bo.ReferenceTypeMember.SomeValueTypeMember = "Value";

I get an object not set to an instance exception. Reasonable!

So, I go back to the service asmx.cs file and go straight to the class
BusinessObject and modify the default constructor to do this:

namespace BusinessObjects
{
   public class BusinessObject
   {

       private SomeOtherClass mReferenceTypeMember;
       //the field mReferenceTypeMember is exposed through a property
called ReferenceTypeMember

       //code
       public BusinessObject()
       {
               this.mRefrenceTypeMember = new SomeOtherClass();
        }
   }
}

Then, I rebuild the service.

I go to the test project. I delete the old Web Reference. I add a new
Web Reference to the same DLL  (I've burnt my fingers there in not
doing that).

I insert a breakpoint at the following line

//call the default constructor
TheAliasOfTheWebReference.Service1.BusinessObject bo = new
TheAliasOfTheWebReference.Service1.BusinessObject();

in the test project.

I expect it to step through the source code in my service. It doesn't.
And it still throws the object instance set to nothing exception.

What gives?
Martin Kulov - 14 Feb 2006 00:27 GMT
> I've written a Web Service that has main service class. Let's call the
> main class that exposes the service interface as Service1.

...
> I insert a breakpoint at the following line
>
[quoted text clipped - 6 lines]
> I expect it to step through the source code in my service. It doesn't.
> And it still throws the object instance set to nothing exception.

Hi Sathyaish,
The reason that you have object not set to instance exception is that the
object on the client side does not instantiate the same constructor that you
have defined at the service. The definition of your class goes to the client
only by the means of WSDL description. Hence no methods or code are
delivered to the client side. That makes pretty much sense since the goal of
web services is to provide interoperable way for communication. After all
there is no way to execute C# code on JVM. You need to have common
initialization class available to both projects, if you want to reuse the
code.

Regards,

Signature

Martin Kulov
http://www.codeattest.com/blogs/martin

MCAD Charter Member
MCSD.NET Early Achiever
MCSD


Rate this thread:







Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.