>As I replied to Bonnie, you may want to add an initializer to the dictionary property
>
>For a non static property it will initalize when oApp is instantiated
>
>for a static property, it will initialize when the static class is first accessed or the static property is first accessed
>
>
http://msdn.microsoft.com/en-us/library/ms182275(v=VS.100).aspx>
>
>You don't need any locks then - as I see it
oApp is declared as:
Public Shared oApp As Framework.App = New Framework.App()
Are you saying I wouldn't need any lock if I change its declaration? Because, this is when we came to that architecture when we discovered that simultaneous hits from the same worker process where firing at startup, which is always the case if you send a compilation when you have traffic, as the time .NET takes to load the new DLL, this creates a queue, thus several hits waiting to be processed, thus more than one per worker process.
I have something that is working now. I am not sure removing the lock would make it the same.