When I start debugging my application using vs2010 before the default.aspx page is rendered the application_error event is fired in global.asax.
There is nothing happening in the page_load of the default.aspx screen.However, if I set a break point on the default.aspx page_load event and the application_error event here are the sequence of events: The page_load event of default.aspx is fired, there is no code to execute there so I hit F5 to continue. The application_error event is then fired.Here are some of the details from Server.GetLastError();
exception message is "File does not exist."
stack trace:
at System.Web.StaticFileHandler.GetFileInfo(String virtualPathWithPathInfo, String physicalPath, HttpResponse response)
at System.Web.StaticFileHandler.ProcessRequestInternal(HttpContext context, String overrideVirtualPath)
[code]...
I have absolutely no idea why this event is fired. Do all of the events in the Global.asax get fired on startup?There is nothing happening on the page_load so how can an error be thrown?
I am handling errors in Global.asax. When I encounter an error in certain pages, the Application_Error event fires twice. On the second trip, Server.GetLastError() returns null. I have a simple page where I throw an error in page load. When that page throws an error the code below works fine. I also have a more complex page with an update panel and many controls. When that page throws an error Application_Error fires twice. I suspect the update panel but update panels are always suspect, right?
There are no try/catch blocks on any of my pages I'm testing with. Custom errors in web.config is commented out. Note that logging and busywork in the Application_Error event are commented out. I'm pretty much just doing a respone.redirect. The problem with the the event firing twice is that the response.redirect fails with an error msg stating that headers have already been sent (adding Context.ClearError and Response.Clear does nothing to fix that).
I am trying to use the Application_Error to redirect the user to a custom error page. I know I could use the web.config to do this, but let's assume for now that this is not a desirable path to take.
Initially, I tried to do a Response.Redirect to perform this, however, there seem to be occasions where the current http context does not define the response object. So, I attempted to perform a check to make sure that the response object is not null prior to attempting the redirection, and if it is not defined, perform a Server.Transfer instead.
What happens is that in most cases, the Redirect causes the browser to some generic "friendlyish" error page rather than the requested error page.
So then I tried using Server.Transfer exclusively, and this worked well for most cases, however, sometimes the transfer didn't seem to take in the browser. Changing it back to a redirect in these cases solved that problem, but reintroduced the issue where the errors previously being captured and transferred now were being redirected.
What I surmised from this is that in certain contexts where the Application_Error method is trapped, it is necessary to use Server.Transfer in redirection, whereas in others, it is necessary to use Response.Redirect. The question then became twofold: (a) When is one necessary and when is the other? and (b) What available information can I poll to tell me when a given condition exists.
After much searching, I cannot find a reasonable answer to this question. So I began to trap errors and examine the HttpContext object for some indicator. One thing that I was looking for is the reason why if even with a defined Response in the current context does a redirect fail. The only thing that stood out is that even though a Response object may exist, the Session data could be absent. I added the case to check whether the Session data was null and perform a Transfer in this case and it seems to be handling it properly.
I emphasize "seems to be handling it properly" because no documentation I've been able to find confirms either the problem I am having or whether this is an appropriate strategy for solving it.
I guess the question is, am I on the right track here or is the null Session object just a red herring, indicative of nothing relevant. Here's the check I have set up for reference.
I know that when a .NET web application first starts, it will be slow on first access. For that reason, I created a 'keep alive' page in the application that is requested every 8 minutes or so by a scheduled process. I hoped that that would be sufficient to prevent the application from 'unloading' and thus suffer from this initial long startup time again and again.
I can see in my logs that the 'keep alive' page is indeed triggered every 8 minutes, 24 hours a day. But when I actively start working in the application after some time, eg. the following day, I still have to wait a while for it to start up. Once the first page is loaded, all is fine again.
Just for kicks, how do you say, wire up an ASP button to purposely throw an Application_Error exception in the global.asax file?
lets say you wanted to test the functionality of the error handling and what is doing..and you don't have a real error to do it. what is the easiest way just raise this event?
I've followed the instructions in the two articles above, plus more and I still cannot get response.redirect to work. I am able to see the url of the page I am trying to redirect to in fiddler but the browser does not navigate to the page. I am using Cassini as a web server, could that be the problem?
I know there are a few posts on this issue already, however I haven't found the answers I was really looking for.
My situation is like this: I have a DLL project containing my business logic. Then I have a web application that refers to this DLL, and calls a function from it. And I have a global.asax which handles errors on Application_Error
I have writen error handling code in my Application_Error event in global.aspx page, but that event is not executed any time when error is occurring.So do I need to take care any other settings on my application to run this.
I'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:
Whenever an unhandled exception occurs on our site, I want to:
Send a notification email Clear the user's session Send the user to a error page ("Sorry, a problem occurred...")
The first and last I've had working for a long time but the second is causing me some issues. My Global.asax.vb includes:
[Code]....
When I run a debug, I can see the session being cleared, but then on the next page the session is back again!
I eventually found a reference that suggests that changes to session will not be saved unless Server.ClearError is called. Unfortunately, if I add this (just below the line that sets "ex") then the CustomErrors redirect doesn't seem to kick in and I'm left with a blank page?
To provide neat and tidy error urls like "/Error/404/TheNameOfTheRequestedPage". This works fine from VS 2008, but once published to my local machine, I get the default error page:
Error Summary
HTTP Error 404.0 - Not Found The resource you are looking for has been removed, had its name changed, or is temporarily unavailable
I've chosen not to use system.web/customErrors because I don't have access to Server.GetLastError() from there (or at least it's never worked for me) and I want to get the http code.
If I have a customErrors section in my Web.config that says to redirect to Error.html, then putting code in the Application_Error method in the Global.asax to redirect to Error.html is redundant is it not? Technically, I could bypass the Web.config by redirecting to a different page in the Application_Error method if I wanted to, but since I don't want to go to a separate page I don't think I need the code.
I used Castle Windsor before and had this routine that fired the certain method of all classes that implement a certain interface.If I recall correctly, the interface was IBootStrapTask and only had an excecute method. Then, for instance, I'd place all my route registrations in one of these, and know it get fired on application startup.Have to admit I did not understand the code to well, so I'm even more unsure how can I do this. I'm using structure map now. (still knowing very little about it)
I was testing out my custom error handling specifically around 404s when I came across an intersting problem, which I recreated on a new web application.
Create web application Create a global.asax file Create a new web form - error.aspx - "This is the error page text"
I am in a partnership with someone. We are currently planning a system that can either use ASP.NET MVC or PHP With //Insert your framework here//. At this stage I can't say to much. Now the thing is I have a bit of experience with C# and MVC. I understand the concepts and actually wrote a fully functional blog with it. Now the other side of me wants to take PHP for a test drive. Will I waste my time? How good will ASP.NET MVC scale against PHP? I have to say that I love visual studio and the integration of MVC tools like quickly adding a view and a controller... Everything fits nicely. But the learning curve was quite steep and still is. I haven't really touched AJAX and Jquery yet but how easy is it to use it with ASP.NET MVC? I already googled and researched this but I want opinions of those who have been working with these technologies.
I have a site in which I have defined my Start up page, say Sample.aspx. After deployment in server named "Siteserver, Now whenever I open link [URL]. Now, my question is, if I have more than one page like Sample1.aspx and Sample2.aspx and I want to open [URL] directly, how can I do this. It is redirecting again to Sample.aspx. How can I achieve this.
I have around 10 "Excute SQL Task" events in sequence. Each Task uses the same two date parameters, which are declared at the top of each script. Is there a way to set these two at the start of the process instead of within each sql script?
we have this problem but can't find a solution. We have an application that references something like 24 dlls. When you invoke the application the very first time (after the application is for any reason reset) it takes 25-40 seconds to start loading contents.
This is what we tried:
1. precompile and publish everything in release mode 2. removing pdbs from bin folder 3. put strong named assemblies into GAC 4. set application to debug = false
consider that the whole bin folder is composed by 24 dlls for a total size of 28MB. Just 4 of these dlls are strong named and they are more and less 25MB. Nothing seems changed. What happens EXACTLY when the application is started is something I couldn't find in any book nor forum/blog/post... What can we monitor more to find where the problem is?
I went to the Code Plex site and down load the latest toolkit. Then followed the instructions on how to set up the toolkit to the letter. When I first loaded the toolkit everything worked. But now every time I start up my computer and start VS all the AJAX controls I have on any page has the green squiggly line underneath it and the error says:Element <AJAX Control Name> is not a known element. This can occur if there is a compilation error in the web site, or the webconfig file is missing.The only thing I can do is delete the Ajax Toolkit tab then add the tab again and then "Choose Items..." and load the Ajax controls again. Then I have to add an AJAX control from the toolkit to any webpage. Once that is done all the green squiggly lines go away and I can continue.This is becoming an incredible pain.