As the others mentioned, Application_Start is called when the application is first started or, more specifically, when the application receives the first request. Typically, this only happens once, but there are some events which may require the application to restart, such as a change to the web.config file, as mentioned before. To answer your second question, yes, the event is fired before you even get to the UI of the app. If you're not seeing this behavior, make sure your breakpoints are setup appropriately.