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 / .NET Framework / Remoting / September 2004

Tip: Looking for answers? Try searching our database.

Exception "Object Reference not set to an instance of the object

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
aacool - 26 Sep 2004 01:06 GMT
Subject: .NET Remoting problem - exception "Object Reference not set to
instance of an object"
From: aacool <a@b.c>
Newsgroups: microsoft.public.dotnet.framework

Hi,

I need some help with a .NET Remoting problem - an "Object Reference not
set to instance of an object"exception is thrown in the client when
accessing methods of a remote object.

Basically, I have a server implemented as a Windows Service, using a
config file, and implementing an object from the General namespace. The
server code is below.

////Data definitions namespace
namespace General
{
    /// <summary>
    /// Interface to access data object
    /// </summary>
    public interface ICustomerManager
    {
        Customer getCustomer(int id);
        int getAge(int id);
    }
    /// <summary>
    /// Data object implementation
    /// </summary>
    [Serializable]
    public class Customer
    {
        //put all functions in an interface
        protected int cust_id;
        public string firstName,lastName;
        public DateTime BirthDate;
        public Customer(int id)
        {
            cust_id = id;
        }
    }
}

/////////Server code
namespace WindowsServiceSrvr
{
    public class ServiceSrvr : System.ServiceProcess.ServiceBase
    {
            private ComponentModel.Container components = null;
            public static string SVC_NAME = "ServiceSrvr";
            public static string cfgFile = "server.config";
            public ServiceSrvr(){...}

            static void Main()
            {
                System.ServiceProcess.ServiceBase[] ServicesToRun;
                ServicesToRun = new ServiceProcess.ServiceBase[] {    
                                                     new ServiceSrvr() };
                evt.Source = SVC_NAME;
                ServiceProcess.ServiceBase.Run(ServicesToRun);
            }
            protected override void OnStart(string[] args)
            {
                RemotingConfiguration.Configure(cfgFile);
            }
    }
       
    [Serializable]
    public class CustomerMgr : MarshalByRefObject,                          
                                       General.ICustomerManager
    {
        public CustomerMgr()
        {
        }

        public Customer getCustomer(int custId)
        {
            General.Customer cust = new Customer(custId);
            cust.BirthDate = new DateTime(1945,12,12);
            return cust;
        }
        public int getAge(int custId)
        {
            General.Customer cust = this.getCustomer(custId);
            TimeSpan tmp = DateTime.Today.Subtract(cust.BirthDate);
            return (int)tmp.Days/355;
        }
       
    }
}

My client uses a Generated_General.dll generated by soapsuds

soapsuds -url:http://localhost:custSrvr?wsdl -oa:gen.dll

The client code is:

namespace ClientUsingService
{
    /// <summary>
    /// Implementation of client - config file, soapsuds generated    
    ///     metaschema, and a server running as a windows service
    /// </summary>
    class Client
    {
        public static string cfgFile = "app.config";
        [STAThread]
        static void Main(string[] args)
        {
            try
            {
                RemotingConfiguration.Configure(cfgFile);
                // Instantion CustomerMgr interface
                WindowsServiceSrvr.CustomerMgr custMgr = new    
                                       WindowsServiceSrvr.CustomerMgr();
                if(custMgr!=null)
                    Console.WriteLine("Got server connection");
                General.Customer cust = custMgr.getCustomer(5434);
                Console.WriteLine(
                                            cust.BirthDate.ToShortDateString());    
                         // throws Invalid Reference Exception
                      Console.WriteLine("Customer 5434 is {0} yrs    
                                                     old",custMgr.getAge(5443));
                Console.ReadLine();
            }
            catch(Exception ex)
            {
                Console.WriteLine(ex.Message);
                Console.WriteLine(ex.StackTrace);
                Console.ReadLine();
            }
        }
    }
}

The problem is that when the methods of custMgr are called by the client
the exception

"Object Reference not set to an instance of an object" is thrown.

I am at my wits end!! Please help explain what is wrong.
Lord2702 - 26 Sep 2004 07:46 GMT
You should check if your cust object has returned properly that is it is not
null.

> Subject: .NET Remoting problem - exception "Object Reference not set to
> instance of an object"
[quoted text clipped - 137 lines]
>
> I am at my wits end!! Please help explain what is wrong.
aacool - 26 Sep 2004 15:56 GMT
I rebuilt all three assemblies and reinstalled the service - it works
fine now. I have put in a check on the cust object not being null, but
why would cust be null sometimes and not null other times with the same
code?

Thanks for the tip
aacool

> You should check if your cust object has returned properly that is it
> is not null.
[quoted text clipped - 20 lines]
>>
>> I am at my wits end!! Please help explain what is wrong.
Sooraj PM - 27 Sep 2004 11:39 GMT
Hi

I think you have posted the same question in another section. Please check
the answer I had given to that

Sooraj
Microsoft Community Star

> I rebuilt all three assemblies and reinstalled the service - it works
> fine now. I have put in a check on the cust object not being null, but
[quoted text clipped - 28 lines]
> >>
> >> I am at my wits end!! Please help explain what is wrong.

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.