MVC :: NullReferenceException When Deploying To IIS 6 - Failed In Global.asax.cs File
Apr 9, 2010
I am developing a small asp.net mvc intranet application for our company. Right now the home page will get the Windows username from the windows logged on user and make a call to our active directory based on that username to get more detailed info about the user (email, ect.) Everything works great on my local Visual Studio 2008 server. But when I deploy all the files to my IIS 6.0 server I get the following:
[NullReferenceException: Object reference not set to an instance of an object.]
STPIntranet.MvcApplication.Session_Start() in C:Documents and SettingscsallemiMy DocumentsVisual Studio 2008Projects<ProjectName>Global.asax.cs:50
[TargetInvocationException: Exception has been thrown by the target of an invocation.]
System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) +0
System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) +71
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) +350
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +29
System.Web.Util.ArglessEventHandlerProxy.Callback(Object sender, EventArgs e) +42
System.Web.SessionState.SessionStateModule.RaiseOnStart(EventArgs e) +8779824
System.Web.SessionState.SessionStateModule.CompleteAcquireState() +237
System.Web.SessionState.SessionStateModule.BeginAcquireState(Object source, EventArgs e, AsyncCallback cb, Object extraData) +504
System.Web.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +66
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155
It is failed in my Global.asax.cs file where I try to populate a custom User object (has a username and email property). In line 50 where the error is occuring I make a call to a class called SecurityUtil to get the username from WindowsIdentity.GetCurrent() and then get the email by making a call into our active directory. I almost want to say that the necessary libraries are not getting added in either my project dll or web.config file because of the null pointer. Also, the error line is point to my local file structure (C:Documents and SettingscsallemiMy DocumentsVisual Studio 2008Projects) and not the file structure residing on my iis 6.0 machine.
Context is Null at this point. I am a noob in ASP.NET with regards to Global.asax.cs. This code was written by another developer. EDIT: This is the code with HttpContext...
I have an asp.net application. I want to add a global.asax and global.asax.cs file to my project. In the IDE when I select to create a new global.asax file, the option to create a CS code behind file is greyed out. When the global.asax file is created, no code behind is created, instead code is placed in the global.asax file and the global.asax.cs file is never created? Why is the option for a C# code behind file greyed out?
we have a store that we contracted with a company to modify. They added the following to our Global.asax file:
[code]...
The purpose is to take anyone going to one of our pages to a login screen unless they are going to these folders which do not need the login protection.
What should be done if I want to redirect a user based on their ISO Codes?
And how should I detect a website user's IS Code in the first place? Like I know there are these server variables that we use to detect Client IP and all (HTTP_FORWARDED_FOR, REMOTE_ADDRESS, etc) but information about them on the many sites that I have read has got me confused about what to use. Like some say there can be comma separated IPs returned by HTTP_FORWARDED_X and out of those IPs , one is not sure which is the real IP and which are the proxy addresses. Also, that all the IP addresses in returned can be fake.
How to I fetch the REAL IP Address of a person? Like I only want to know what country a particular person is sitting so I can redirect the user accordingly. Secondly lets say a person is sitting in US then I want the user to be redirected to [URL] If a person is visiting my site from Germany, [URL] is the address that I want the person to be redirected to.Also if DE is the ISO Code then I want my GermanMaster.master page to load and if its US then I want that the USMaster.master should load.
So how do I fetch a user's not fake IP address, redirect a user based on that ISO code and then load a master page according to the ISO Code.
How do I go about it? I haven't ever worked with Global.asax before so clueless how to go about it all.
I'm trying to install a 301 redirect where the instruction is as follows:
"In my Global.asax file (You can add this to your site from Visual Web Developer or Visual Studio by selecting File->New), In the Application_BeginRequest event, I added a call to the following code:"
The code is at bottom if needed. When it says "added a call to the following code:" does that mean something more than just putting the code inside the Application_BeginRequest section of my global.asax? For example, here's what that section looks like in my site:
Usually I use this code to read a file from beginning to end into a List<> and then I write to a file with the code I have above.It seems that StreamReader/StreamWriter is not possible to use in Global.asax.I simply might wonder how I can convert this code for Global.asax?
Here's my problem I have some code and I'm using it to send an e-mail with the last error details but all I want is the (Inner)Exception Message to be displayed in the email with the URL
I am have declared a session variable in login page of my application. I want to access that session variable in Application_BeginRequest of global.asax file. But I am not able to do it. Could you please suggest how to access the session variable in my global.asax file
Has anyone had any luck getting MVC 3 working on IIS 6?I've added the .aspx extension to the controller in my global.asax file. I also have Default.aspx in the root of the project with the following code-behind:
[Code]....
This is what my global.asax looks like:
[Code]....
.NET 4.0 has been installed on the server, and is selected for the project. All of this, and I still get HTTP Error 404 -
I got this security warning ReviewVisibleEventHandlers(CA2109)for all event handler methods that are present in Global.asax.cs file(Application_Start,Session_Start,Application_BeginRequest,Application_EndRequest,Application_AuthenticateRequest,Application_Error,Session_End,Application_End.
I am trying to fix this warning by marking all event handler methods that are present in Global.asax.cs file as private. Does it result in any side effects in web application execution?
Can I set the connection string for custom session state mode in global.asax file? I cannot hard code the connection string in the webconfig file. ,I will get the connection string at runtime,Can i set the connection string for custom sessionmode/sqlserver session mode in the global.asax file(like in application statrevent, or aquirerequeststate event.If YES How to do that?
When debugging my application, I m getting an application level error in global.asax file. The Server.GetLastError() reads "File does not exist." but thats it. No more details on the filename or the location where the code is trying to find a file. I commented out the application_error method, with a hope that the exception would be thrown when the debug the application, but no errors were thrown. How do i find the source of the error, cos I want to resolve this issue by either putting the file that the application is looking for or by completely removing the code that is referencing the file.
to set a new sessionId on sign out, but when the session expires, the sessionId is reused if the browser instance is not closed. In my web.config I have used
but still get sessions reused. I can't kill the cookie in Session_end() because I don't have access because there is no HttpContext or request, so I can't reset it that way. how I can force a new sessionId from the Global.asax.cs file?
I know there is a couple answered questions on here regarding "request scoped" globals, but I want to nit-pick on something specifically and maybe squeeze some extra enlightenment out of one or two of you.I have an ASP.NET C# Website and a static Dictionary of objects (loaded from DB once on Application start). Each page request will need to do a lookup in the Dictionary (based on a key derived from the request url/etc) and get the appropriate object.The issue is I'm trying to maximize efficiency by reducing the lookups to the Dictionary per Request. Doing just a single lookup within a Page itself is easy enough and I can pass the object to sub controls, etc too.. but global.asax is separate from the Page and it also needs to use the object (in Application_BeginRequest and Session_Start).
So is doing a Dictionary lookup once in Application_BeginRequest, once (when necessary) in Session_Start and once in the Page negligible speed wise, even if there are many requests coming in every second?I would like it if I could just have a Request scoped global variable that I can easily call upon.. the only one I see available though is HttpContext.Current.Items and that is a Dictionary itself.Am I beingridiculously nit-picky with my concern over efficiency? or will these milliseconds (nanoseconds?) get me in the long run when more and more requests are being made?
PS. I currently only have around 100 objects in the Dictionary although this may increase in the future.
Is it possible in the global.asax file on session_start to check if a url string exists and it it does insert the string into a sql database? The url would be something link http://www.mysite.com?campaign=january.
I would want to capture the january bit and put that in the database for each visitor that uses that url.
I have a hosting account on DailyRazor.com , i use Global.asax in my project to start a schedule process in Application_Start.When i just publish my website, and upload it, the Application_Start does not Fire, but when i upload the Global.asax to my host it gives an Error but the Applicaiton_Start Event fires up, and then i delete the Global.asax file and everything works.just wondering, What am doing wrong ? or why this meaningless thing happens?