?
Solved

System.NullReferenceException: Object reference not set to an instance of an object.

Posted on 2004-03-27
4
Medium Priority
?
813 Views
Last Modified: 2007-12-19
Hi all

this is driving me slightly mad. I'm integrating two different apps, with their own authentication methods (seemed like a good idea at the time!).  It builds fine.

Making this call (userInt is set to a valid integer in both cases) in global.asax:

InstantASP.InstantForum.Logic.UserExists(userInt);

in Session_Start is working ok, but in Application_AuthenticateRequest it gives me the following error:

Exception Details:
System.NullReferenceException: Object reference not set to an instance of an object.

Stack Trace:
NullReferenceException: Object reference not set to an instance of an object.]
   InstantASP.InstantForum.Logic.ReturnSessionID() +15
   InstantASP.InstantForum.Logic.UserExists(Int32 UserID) +202
   CEL.Global.Application_AuthenticateRequest(Object sender, EventArgs e) in c:\inetpub\wwwroot\cel\global.asax.cs:129
   System.Web.SyncEventExecutionStep.System.Web.HttpApplication+IExecutionStep.Execute()
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)


Any pointers as to how to track down?  The object I'm calling is a compiled dll, so getting in to what it's doing is going to be tricky.  I'm wondering if there's a different context for these two parts of global.asax, but to be honest am a bit lost.

Thanks in advance
Ben
0
Comment
Question by:bjohns33
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
4 Comments
 
LVL 2

Accepted Solution

by:
codewiz51 earned 2000 total points
ID: 10695301
If you notice, the failure occurs when the class attempts to return the sessionID:
InstantASP.InstantForum.Logic.ReturnSessionID() +15

That's because you don't have a session established at the time Application_AuthenticateRequest excutes, but it does exist by the time Session_Start executes.

This is based on wild conjecture at this point, but I am betting the original authors intended for UserExists to be excuted after a session is established.

Good luck on this.
0
 
LVL 1

Author Comment

by:bjohns33
ID: 10695464
Thanks for the response - despite your 'wild conjecture', I'm sure you're right!

So, is a solution to move all of my authentication code in to Application_OnPostRequestHandlerExecute instead, as this does have access to the session?

What will this break?

Cheers
Ben
0
 
LVL 1

Author Comment

by:bjohns33
ID: 10695806
Hi CodeWiz

Have moved it all to the Application_OnPostRequestHandlerExecute, and miracle of miracles, it works.

Thanks for pointing me in the right direction.

Cheers
Ben
0
 
LVL 2

Expert Comment

by:codewiz51
ID: 10696407
Sorry, I was cutting the grass and didn't see your responses.  Amazing, I have a life occasionally!  I'm glad moving the code worked, because I didn't have a clue as to whether anything would break if you moved it to Application_OnPostRequestHandlerExecute.  ;-)

0

Featured Post

New feature and membership benefit!

New feature! Upgrade and increase expert visibility of your issues with Priority Questions.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction This article series is supposed to shed some light on the use of IDisposable and objects that inherit from it. In essence, a more apt title for this article would be: using (IDisposable) {}. I’m just not sure how many people would ge…
This article introduced a TextBox that supports transparent background.   Introduction TextBox is the most widely used control component in GUI design. Most GUI controls do not support transparent background and more or less do not have the…
Monitoring a network: how to monitor network services and why? Michael Kulchisky, MCSE, MCSA, MCP, VTSP, VSP, CCSP outlines the philosophy behind service monitoring and why a handshake validation is critical in network monitoring. Software utilized …
In this video, Percona Solutions Engineer Barrett Chambers discusses some of the basic syntax differences between MySQL and MongoDB. To learn more check out our webinar on MongoDB administration for MySQL DBA: https://www.percona.com/resources/we…

752 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question