ASP.NET websites need some static data to be initialized, so that subsequent requests can utilize the loaded data and load much faster. It is a common practice to write such code in the Application_Start Event in Global.asax.cs file.
protected override void Application_Start(object sender, EventArgs e)
However, the Application_Start event could fail for a numerous reasons. One of them could be the non-availability of a dependent resource, or if you have lined up a set of synchronous steps to build some cache data and one of them failed. To overcome this limitation, use a try-catch block and call the HttpRuntime’s UnloadAppDomain method in the catch block. This will ensure that the Application_Start event fires with the next request.
catch (Exception ex){ HttpRuntime.UnloadAppDomain();}
?
?