Search code examples
asp.net-mvcazureazure-web-roles

What starts first Application_Start or WebRole's OnStart?


I have MVC project on Windows Azure. This project has WebRole with method OnStart. And I want to know what starts first Application_Start of Global.asax or WebRole's OnStart?


Solution

  • Pretty sure this is non-deteministic after SDK 1.3. Trying to time something from one to the other will just end in a race condition.

    Prior to 1.3, the Hosted Worker Core (HWC) was hosted in the RoleEntryPoint, so there was a deterministic startup (OnStart, Application_OnStart, IIRC). However, with IIS hosting the web now, it is the IISConfigurator.exe that creates the app pool, etc, and eventually w3wp.exe hosts your web site. This is a different process than your RoleEntryPoint, so either one could start first.