protected void Application_Start() { // Проставим timestamp для ETagCultureBased // Если приложение перегружалось, необходимо очистить кеш клиента ETagConfig.Timestamp = DateTime.Now.Ticks.ToString(); BLToolkit.Common.Configuration.NullableValues.String = null; BLToolkit.Common.Configuration.TrimOnMapping = false; // Set our model metadata provider to support Description attribute ModelMetadataProviders.Current = new KescoDataAnnotationsModelMetadataProvider(); LogModule logModule = new LogModule(Configuration.AppSettings.AppName); logModule.Init(Configuration.AppSettings.SmtpServer, Configuration.AppSettings.Email_Support); Logger.Init(logModule); Logging.Logger.Init(logModule); // Инициализируем TAPI //Kesco.Zvonilka.Zvonilka.InitTapi(Configuration.AppSettings.AppName, false, false); AreaRegistration.RegisterAllAreas(); ModelBinding.RegisterBinders(); RegisterGlobalFilters(GlobalFilters.Filters); RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); //set the build version, so all composite resource requests include build //will invalite cache when no build is deployed Version v = Assembly.GetExecutingAssembly().GetName(false).Version; string version = Configuration.AppSettings.URI_styles_cache;// string.Format("{0}{1}{2}{3}", v.Major, v.Minor, v.Build, v.Revision); CompositeResourceSettings.Version = version; // Устанавливаем собственный провайдер метаданных ModelMetadataProviders.Current = new KescoDataAnnotationsModelMetadataProvider(); // Определяем собственный JsonValue Provider : Kesco.Web.Mvc.JsonValueProviderFactory ValueProviderFactories.Factories.Remove(ValueProviderFactories.Factories.OfType <System.Web.Mvc.JsonValueProviderFactory>().FirstOrDefault()); ValueProviderFactories.Factories.Add(new Kesco.Web.Mvc.JsonValueProviderFactory()); // Регистрируем адаптеры для клиентской валидации ModelValidatorRegistration.RegisterAdapters(); // Регистрируем собсвенный связыватель данных. ModelBinders.Binders.DefaultBinder = new DefaultModelBinderEx(); }