protected void Application_Start() { ConfigurationProvider = new ConfigurationProvider(); var appSettingsReader = new AppSettingsReader(); var connectionStringsReader = new ConnectionStringsReader(); Task.WaitAll( Task.Run(() => ConfigurationProvider.AddConfigurationReaderAsync(appSettingsReader)), Task.Run(() => ConfigurationProvider.AddConfigurationReaderAsync(connectionStringsReader))); GlobalConfiguration.Configure(WebApiConfig.Register); RouteConfig.RegisterRoutes(RouteTable.Routes); var dataContextTask = Task.Run(Factory.GetDataContextAsync); dataContextTask.Wait(); dataContextTask.Result.Database.Initialize(false); }