コード例 #1
0
        public void Configuration(IAppBuilder app)
        {
            AppLocalRootPath = HostingEnvironment.MapPath("~/");
            var log4NetConfigFilePath = HostingEnvironment.MapPath("~/log4net.config");

            if (AppLocalRootPath == null)
            {
                Console.WriteLine("Starting in self hosting mode");
                AppLocalRootPath      = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
                log4NetConfigFilePath = Path.Combine(AppLocalRootPath, "log4net.config");
            }
            var logConfigFileInfo = new FileInfo(log4NetConfigFilePath);

            if (logConfigFileInfo.Exists)
            {
                XmlConfigurator.ConfigureAndWatch(logConfigFileInfo);
            }
            else
            {
                XmlConfigurator.Configure();
            }

            ConfigureBackend(app);


            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
            var identityConfiguration = new IdentityConfiguration(IdentityDatabaseContextFactory);
            var task = identityConfiguration.EnsureDefaultUsersAndRolesAsync();

            ConfigureAuth(app);

            task.GetAwaiter().GetResult();

            var properties = new AppProperties(app.Properties);
            var token      = properties.OnAppDisposing;

            if (token != CancellationToken.None)
            {
                token.Register(() =>
                {
                    Storage?.Dispose();
                    AuthDatabase?.Dispose();
                    Container?.Dispose();
                });
            }
        }