ASP.NET : Get URL Of Error Page In Global.asax's Application_OnError
Jan 25, 2010
I have an ASP.NET application where i am tracking my applicaion level erros using golabl.asax On_Error method.I will send an email to my id when there is some error happened in the site(ie :" when the application _error being invoked) Now From my global.asax's Application_OnError event, how can i get the URL of the page where this error was raised ?
When it gets to the page servererror/default.aspx I need it to send an e-mail to me with the exception.message
Here's what i'm trying but it won't work
Sub Page_load(ByVal sender As Object, ByVal e As EventArgs) Dim LastError As Exception Dim ErrMessage As String LastError = Server.GetLastError() ErrMessage = LastError.Message
I want to make sure of one thing. I have implemented the Application_Error() method of Global.asax. In my application some where I have a try catch. If an exception is trown and that exception is handled by a catch block. Does this envoke the Application_Error() method in the global.asax
i have the following code in my global.ascx and when i click a generate error button the code gets run but seems to fail on the insert error into the DB.
I want the error to be saved to the DB and redirect to default.aspx.
pretty standard stuff.
the error i get is: exe.Message = "Incorrect syntax near 'System'." (looks like somethign with the SQL objects used in global.asx)
void Application_Error(object sender, EventArgs e) { // Code that runs when an unhandled error occurs Exception ex = Server.GetLastError(); StringBuilder theBody = new StringBuilder(); theBody.Append("Error Message: " + ex.ToString() + "
I'm working on a small web application, and I wanted the user to be redirected to a simple error page anytime an exception was encountered. So I wanted to redirect the user to generic Error page "Oooops.aspx" that will log the error in page_load.
I'm thinking that I can use Application_Error in Global.asax, where I can redirect to "Oooops.aspx" so that it displays a friendly error page and it logs the exception (through Server.GetLastError()). I can also use web.config and add "<customErrors mode="On" defaultRedirect="Oooops.aspx"/>" It'll redirect me to a friendly error page and it will also log the exception. What's the difference between these two? Should I use both of them, or just one? And which should I use?
In the global.asax file, I capture the error details (if one occurs) and I have it send that error detail to an email address.
I am finding that it's reporting all sorts of strange ones when the website gets hit with a crawler....or at least I think it is. ( HTTP_USER_AGENT: Mozilla/4.0 (compatible; Synapse)).
The following are common errors that repeat multiple times at the same date and time:
Error Message: Input string was not in a correct format. Error Message: Invalid character in a Base-64 string. Error Message: Unable to validate data. Error Message: The serialized data is invalid.
I am categorizing my website page to be defined as Secured & unsecured (ie few page on http & other on https) in Global.asax. Now, Product.aspx page has to be defined as unsecured. But I just couldn't make out how to define this since it is called with a querystring. If I simply define it as "Product.aspx", output is coming incorrect ie I need to define it as "Product.aspx?pid=123". But since there are lot many products, so I couldn't define it like this.
When I run my app locally I get no errors. No error from Global.asax, no redirection to an error page. Everythings works fine.
When I deploy my app to a test server, my app run there with no errors. No error from Global.asax, no redirection to an error page. Everythings works fine on the test server.
But when I deploy my app to production server, the app runs fine but I keep getting errors (emailed to me) from Global.asax. On production server we have these security apps that run and keep hitting all URLs of the app on the server. Just to make sure they are working fine. When these security app hit URL of my app, my application runs fine but it gives out this global.asax error. The funny thing is that error is empty. The error are emailed to me and the email is empty. Nothing there.
There are several other apps running on the same server. My app has its own app pool and is configured correctly.
I'm wanting to adjust this code to pull the theme name from a database table, instead of just manually assigning a theme in the file. This way a site administrator can set the theme dynamically. If never done this with a global.asax file, so I'm not sure what the best way is to accomplish it?
Here's the code that needs tweaked:
[Code]....
The database table could be "ThemeName" with rows ID & Theme. If performing this in the global.asax file will cause any big performance issues.
I have a ASP.NET/C# web application. There is an object instantiated in the Global.asax that I'll call g_objVariable. What I would like to do is reference one of it's properties in the ASP.NET page itself, like this.
The g_objVariable's Prop1 value is: <%=AppNameSpace.Global.g_objVariable.Prop1.ToString()%>
I get it to see the reference, but it keeps telling me that due to it's protection level I can't access it. I have it set to 'internal static'. What would be the least level I could set it to, but still allow the page to access it?
My website needs hit counter. i have created hit count in global.asax page, which works fine. Now i wanted to display hit count in all pages. so, do i have to use mater page or function to all in every page.
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.
Can I call Initialize Culture of every page from the Global.asax?
Every page looks at the query string of "?lang=##" and sets the language accordingly. Since all pages do this, is there a place where I can implement it once and all pages will load it?
My site has around 200 pages and I dont want to implement the code in everypage. Would take too long for maintenance and to implement. It would be more convinient if I could simply put it in a function that all pages call when loading.
Looking for best practice focused answers here with explanations.
Should the presentation layer of an ASP.Net app catch and handle exceptions thrown from the business layer, or should these be allowed to bubble out, where they can all be logged and handled uniformly in the Global.ascx's Application_Error handler?
my objective is i want to log all those exceptions on my aspx pages which are handled or unhandled. To do this do i need to write my method in global.asax or how can i 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.
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?
I 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.