public static void Register(HttpConfiguration config, WebHostSettings settings = null) { if (config == null) { throw new ArgumentNullException("config"); } if (settings == null) { throw new ArgumentNullException("settings"); } // Delete hostingstart.html if any. Azure creates that in all sites by default string hostingStart = Path.Combine(settings.ScriptPath, "hostingstart.html"); if (File.Exists(hostingStart)) { File.Delete(hostingStart); } // Add necessary folders to the %PATH% PrependFoldersToEnvironmentPath(); var builder = new ContainerBuilder(); builder.RegisterApiControllers(typeof(FunctionsController).Assembly); AutofacBootstrap.Initialize(builder, settings); var container = builder.Build(); config.DependencyResolver = new AutofacWebApiDependencyResolver(container); config.MessageHandlers.Add(new EnsureHostRunningHandler(config)); // Web API configuration and services // Web API routes config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "Home", routeTemplate: string.Empty, defaults: new { controller = "Home" }); config.Routes.MapHttpRoute( name: "Functions", routeTemplate: "{*uri}", defaults: new { controller = "Functions" }); // Initialize WebHook Receivers config.InitializeReceiveGenericJsonWebHooks(); config.InitializeReceiveAzureAlertWebHooks(); config.InitializeReceiveKuduWebHooks(); config.InitializeReceivePusherWebHooks(); config.InitializeReceiveStripeWebHooks(); config.InitializeReceiveTrelloWebHooks(); config.InitializeReceiveDynamicsCrmWebHooks(); config.InitializeReceiveMailChimpWebHooks(); config.InitializeReceiveSlackWebHooks(); config.InitializeReceiveBitbucketWebHooks(); config.InitializeReceiveDropboxWebHooks(); config.InitializeReceiveWordPressWebHooks(); config.InitializeReceiveGitHubWebHooks(); config.InitializeReceiveSalesforceWebHooks(); }
private static WebHostSettings GetDefaultSettings() { WebHostSettings settings = new WebHostSettings(); string home = Environment.GetEnvironmentVariable("HOME"); bool isLocal = string.IsNullOrEmpty(home); if (isLocal) { settings.ScriptPath = Environment.GetEnvironmentVariable("AzureWebJobsScriptRoot"); settings.LogPath = Path.Combine(Path.GetTempPath(), @"Functions"); settings.SecretsPath = HttpContext.Current.Server.MapPath("~/App_Data/Secrets"); } else { // we're running in Azure settings.ScriptPath = Path.Combine(home, @"site\wwwroot"); settings.LogPath = Path.Combine(home, @"LogFiles\Application\Functions"); settings.SecretsPath = Path.Combine(home, @"data\Functions\secrets"); } if (string.IsNullOrEmpty(settings.ScriptPath)) { throw new InvalidOperationException("Unable to determine function script root directory."); } return(settings); }
private static WebHostSettings GetDefaultSettings() { WebHostSettings settings = new WebHostSettings(); string home = Environment.GetEnvironmentVariable("HOME"); bool isLocal = string.IsNullOrEmpty(home); if (isLocal) { settings.ScriptPath = Environment.GetEnvironmentVariable("AzureWebJobsScriptRoot"); settings.LogPath = Path.Combine(Path.GetTempPath(), @"Functions"); settings.SecretsPath = HttpContext.Current.Server.MapPath("~/App_Data/Secrets"); } else { // we're running in Azure settings.ScriptPath = Path.Combine(home, @"site\wwwroot"); settings.LogPath = Path.Combine(home, @"LogFiles\Application\Functions"); settings.SecretsPath = Path.Combine(home, @"data\Functions\secrets"); } if (string.IsNullOrEmpty(settings.ScriptPath)) { throw new InvalidOperationException("Unable to determine function script root directory."); } return settings; }