C# - How Can We Use Global.asax
Feb 26, 2010how can we use global.asax in asp.net? and what is that?
View 4 Replieshow can we use global.asax in asp.net? and what is that?
View 4 RepliesI 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 want to make All Methods about Error handling in asp.net some one device me at using global.asax what is global.asax?
how can i use it ?
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?
View 2 RepliesI have a site with multiple domains pointing to it. I wanted to redirect all requests to main domain so I've created a method called RedirectToRealDomain("domain.com") to check and redirect all requests to my preferred domainAt the moment it lives on Session_Start but I am planing to move it to Application_BeginRequest event. As I understand Session_Start only raised when new session started but Application_BeginRequest raised on all requests. RedirectToRealDomain method doesn't do any DB lookups or anything expensive apart from comparing strings.
View 2 RepliesI want to set the Masterpage property in Global.asax.
This is what I have done but I get a NullReferenceException on the first line.
protected void Application_PreSendRequestContent(Object sender, EventArgs e)
{
System.Web.UI.Page page = System.Web.HttpContext.Current.Handler as System.Web.UI.Page;
if (Session["lang"] == "eng")
{
page.MasterPageFile = "SideMasterPageEng.master";
}
}
I am trying to check if the user belongs to someone's friendlist from the database and redirect him accordingly.I am doing this in a routehandler called by Global Asax.I just want to know how to get the username (from the login information) in the route handler class (or Global asax)I used this: string username = HttpContext.Current.User.Identity.Name; and very strangely, its assigning ".aspx" as the username!! ps: i did search for similar question but in vain.
View 1 RepliesI need replace double slashes in one slash. I am planning do this in Global.asax Application_BeginRequest event. Is it enough? or better do a http module?
UPD
Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)
' Fires at the beginning of each request
[code]...
I was under the impression till now that Global.asax is used for application level events and it's a common file for all users. Then what does Session_Start event does in this file. If we have to create user session varaibles then Is this the write place to create those? If someone can kindly clear my confusion on this file and it's methods.
View 5 RepliesI'm trying to handle all my application exceptions inside the global.asax but from some reason it's not firing at all, i never tried to do it before so i guess i'm doing something wrong here...
here is the code inside the default.aspx page that throw the error:
[Code]....
I'm using the HttpRunTime.Cache.Add to create a routine that runs every 5 mins to post data out of my app to the main DB, and this works fine. However I also need to import some files from disk in this routine. I have my document directory set up in my web.config as a ~/ relative path and resolve this in normal controller actions using Server.MapPath(string). How can I do this in my Global.asax.cs code -when I try to access it, it throws an error?
View 3 RepliesI have a custom error handler in the global.asax's Application_Error method, when an error occurs I use the following code to transfer user to the error page:Server.Transfer("/Error/");
However without specifying the actual page name the code above breaks with "Error executing child request for /Error/" exception.So if I use Server.Transfer("/Error/Default.aspx") it works fine with no problems.Also using Response.Redirect("/Error/") works fine too, however we want to keep using Server.Transfer to retain URL displayed in the address bar when the error page is displayed so users can simply refresh the page to retry accessing the original offending URL.Would be grateful if anyone can comment on how to get the Server.Transfer method working without specifying the actual aspx page name.
I've got an website running on a third-party hosting server. Now I've got a few objects in global asax. But once in like 6 hours or so (didn't really check how long) the object gets reset to default values.Is this an problem in global asax that it reset's himself or is this the server on which I'm hosting?
View 3 Replieswe 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.
I now need to let them go to [URL]
The purpose of the code associated with the Global.asax is to hold functionality to respond to various application-level events.
But why is there a markup file associated with the Global.asax.cs? I presume this is an ASP.NET implementation side effect?
I was given a web app written in VB.net. I am using VS2008. The project has a Global.asax page with Enums declared
Example:Public Enum eCurrentLoc as Integer
Admins
AdminTools
Home
LogIn
Status
End Enum
But in the web application itself I get errors on this line of code:
Ads = Global.eCurrentLoc.Admins
I get the blue scwigly line under Global.eCurrentLoc
The error states 'eCurrentLoc' is not a memeber of '<Defaults>'
I need to redirect some of the older pages in my application to new pages. I thought urlMapping in web.config is the efficient way to achieve this. But there is also another way to redirect using global.asax. Which one is the efficient way for this. At what point in request execution does this asax and config file comes into the picture?
View 3 RepliesQuestion: When a webapplication gets started, it executes Application_Start in global.asax.Now, a web application gets started as soon as the first request for a page in that application reaches the server.But my question is: how long will the application run until the application is stopped.I mean when after the first page request, there's no traffic on the server.I need to know because I intend to start a server that listens on a tcp port in global.asax.And when the application stops, the server ceases to listen to its port.
View 2 RepliesIf I am just logging exception details in my web app, do I really need to put in exception handling logic for each tier? Why not just let them all bubble up the stack trace to the global.asax and log them there?
View 5 RepliesIs there an event that can tap into in Global.asax to execute some SQL in ADO.NET for logging every time a request is made to the application?
View 3 RepliesI'm trying to use the Global.asax file in the root application of the website to catch requests for pdf files in the root that don't exist any more. I've configured iis to send pdf requests to asp.net. The whole thing works perfectly on development. It also works on the live system with missing .aspx pages, but not .pdf. Instead an "Error Code 64: Host not available". I'm using the Global.asax file to avoid the web.config and child applications (1.1 & 2.0) inheriting settings.
Edit:
I configured IIS to send .pdf requests to asp.net using the Application Configuration dialog on the mappings tab and adding .pdf extension mapped to the aspnet_isapi.dll. "Verify that file exists" is turned off (although I've also tried it turned on).
First i am using SSL while logging.
When i log in, i am creating a cookie like this. when i check if it is secure the answer is yes.
FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(1, // version
UserName.Text, // user name
DateTime.Now, // creation
DateTime.Now.AddMinutes(60),// Expiration
[Code]....
here i get the cookieName as ".ASPXAUTH" and authCookie.Secure value as False. Why is this happening i want the authCookie.Secure value to be true here.
my web config has this:
<authentication mode="Forms">
<forms loginUrl="Login.aspx" defaultUrl="~/Default.aspx" slidingExpiration="true" timeout="120" path="/" requireSSL="true" protection="All">
</forms>
</authentication>
<httpCookies requireSSL="true"/>
<authorization>
<deny users="?"/>
<!--<allow users="*"/>-->
</authorization>
i implement this library in my applicationhttp://www.dominicpettifer.co.uk/Blog/17/gzip-compress-your-websites-html-css-script-in-codeit Works very well if i run the site in Visual Studio but when i compile my site and publish in IIS it only Gzip ASPX files not CSS or JS files.does anyone knows a better way for implement JavaScript and CSS Gzip in C# 2005 (changing the IIS its not an option it has to be in the code)
View 1 RepliesI have a Global.ascx and I wrote a simple url writer module :
void Application_BeginRequest(object sender, EventArgs e)
{
try
{
string strPath = Context.Request.Url.AbsoluteUri;
string[] sections = strPath.Split('/');
int len = sections.Length;
string strExtention = sections[len - 1].Split('.')[1];
if (strExtention.ToLower().TrimEnd().Equals("xml"))
{
if (sections[len - 2].Equals("ATM"))
Context.RewritePath("~/Include/XML Files/Orders/TMP/" + sections[len - 1]);
else
Context.RewritePath("~/Include/XML Files/Orders/" + sections[len - 1]);
}
}
catch
{
}
}
it works locally but it dosen't work in the host how I can implement handler for this? Server.Transfer doesn't work also.