You CAN use HttpModule
to handle application start event
Contrary to others that only write/believe what they read I've done my own part and found out it's possible to handle Application start using an HTTP module. It's a bit of a hack really but it reliably works. It's definitely not something someone should avoid, because I've seen it in MS modules as well (namely Sharepoint 2010 SPRequestModule
) This blog post of mine (Writing a custom IHttpModule that handles Application_Start event) will get you all the information you need to know about this. I've done it myself and it simply works. But you have to be a bit careful when using common resources, because your application may start behaving weird. To avoid this I suggest you read an additional blog post of mine, that explains why this happens and how to avoid it.
If you want it to be thread safe as well, you can also lock execution and then mark module as application started. It's the safest way of doing it.
private static bool isStarted = false;
private static object moduleStart = new Object();
...
if (!isStarted)
{
lock(moduleStart)
{
if (!isStarted)
{
// handle aplication start
...
isStarted = true;
}
}
}
I've created my own library that hooks to existing applications like Sharepoint 2010. I don't want to change Global.asax of Sharepoint now do I? Using technique explained in the blog post, I was able to hook into it. Easily.
And I guess this is exactly what you've been looking for. Hooking into start event of an arbitrary application by adding a module into web.config
. Do it this way. It will work.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…