The key requirements are that this code:
- is executed as soon as possible (and only once),
- is not placed inside the Global.asax file and
- it can be used to apply targeted customization to the code in TeamMentor's CoreLib.dll
Basically, if on the (dynamically compiled) App_Code folder we add a class
with a public static method called AppInitialize
That method will be called before the Global.asax Application_Start (which means that it is the perfect place to put website specific settings like the one shown above).
I also added some Event’s to the main TeamMentor.CoreLib which allow the hook of events like the Global.asax BeginRequest.
The code above will write “<h1>Custom code</h1>” on all requests that are not .js, .ashx, .asmx, . jpg and .gif.
This works on the local Cassini server and on IIS (see below the CI version created on Azure)
In the title of this post I mentioned that this was undocumented because there doesn’t seem to be any offical public information about this:
The only information out there seems to come from the startup - When AppInitialize method get invoked in ASP.NET? post: