public static void InitializeAll(this HttpApplication application) { application.RegisterGlobalExceptionHandler(); GlobalConfiguration.Configuration.Filters.Add(new WebApiGlobalExceptionFilterAttribute()); ConfigurationCenter.Initialize(true, HttpContext.Current.Server.MapPath("~")); application.RegisterGeneralControllers(RouteTable.Routes); CacheManager.Initialize(new AspNetCacheContainer(HttpContext.Current.Cache)); GlobalFilters.Filters.Add(new CompressFilter()); bool enableActionDiagnoseFilter = bool.Parse(ConfigurationCenter.Global["EnableActionDiagnoseFilter"] ?? bool.FalseString); if (enableActionDiagnoseFilter) { GlobalFilters.Filters.Add(new ActionDiagnoseFilter()); } bool enableActionLogFilter = bool.Parse(ConfigurationCenter.Global["EnableActionLogFilter"] ?? bool.FalseString); if (enableActionLogFilter) { GlobalFilters.Filters.Add(new ActionLogFilter()); } bool requestTrack = bool.Parse(ConfigurationCenter.Global["RequestTracker"] ?? bool.FalseString); if (requestTrack) { GlobalFilters.Filters.Add(new RequestTrackerFilter()); GlobalConfiguration.Configuration.Filters.Add(new WebApiRequestTrackerFilter()); } bool baiduYunGuanCe = bool.Parse(ConfigurationCenter.Global["EnableBaiduYunGuanCeFilter"] ?? bool.FalseString); if (baiduYunGuanCe) { GlobalFilters.Filters.Add(new BaiduYunguanceFilter()); } bool apiProxy = bool.Parse(ConfigurationCenter.Global["ApiProxy"] ?? bool.FalseString); if (apiProxy) { ApiProxyController.Enabled = true; } bool ignoreSSLValidation = bool.Parse(ConfigurationCenter.Global["IgnoreServerCertificateValidation"] ?? bool.TrueString); if (ignoreSSLValidation) { ServicePointManager.ServerCertificateValidationCallback += (mender, certificate, chain, sslPolicyErrors) => true; } s_allowOrigins = (ConfigurationCenter.Global["AllowOrigins"] ?? "") .Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries) .Select(t => t.Trim()) .Where(t => t != string.Empty) .ToList(); s_allowMethods = (ConfigurationCenter.Global["AllowMethods"] ?? "GET,POST,PUT,PATCH,CREATE,DELETE,OPTIONS"); s_allowHeaders = (ConfigurationCenter.Global["AllowHeaders"] ?? "AccessToken,Content-Type,Accept"); if (s_allowOrigins.Any()) { var corsFilter = new CorsFilter() { AllowAnyOrigin = s_allowOrigins.Any(t => t == "*"), AllowOrigins = s_allowOrigins, AllowMethods = s_allowMethods, AllowHeaders = s_allowHeaders, }; GlobalFilters.Filters.Add(corsFilter); var webApiCorsFilter = new WebApiCorsFilter() { AllowAnyOrigin = s_allowOrigins.Any(t => t == "*"), AllowOrigins = s_allowOrigins, AllowMethods = s_allowMethods, AllowHeaders = s_allowHeaders, }; GlobalConfiguration.Configuration.Filters.Add(webApiCorsFilter); } }