Exemple #1
0
        public static void Main(string[] args)
        {
            var host = CreateWebHostBuilder(args).Build();

            // 创建可用于解析作用域服务的新 Microsoft.Extensions.DependencyInjection.IServiceScope。
            using (var scope = host.Services.CreateScope())
            {
                var services      = scope.ServiceProvider;
                var loggerFactory = services.GetRequiredService <ILoggerFactory>();

                try
                {
                    // 从 system.IServicec提供程序获取 T 类型的服务。
                    // 为了大家的数据安全,这里先注释掉了,大家自己先测试玩一玩吧。
                    // 数据库连接字符串是在 Model 层的 Seed 文件夹下的 MyContext.cs 中
                    var configuration = services.GetRequiredService <IConfiguration>();
                    if (configuration.GetSection("AppSettings")["SeedDBEnabled"].ObjToBool())
                    {
                        var myContext = services.GetRequiredService <MyContext>();
                        DBSeed.SeedAsync(myContext).Wait();
                    }
                }
                catch (Exception e)
                {
                    var logger = loggerFactory.CreateLogger <Program>();
                    logger.LogError(e, "Error occured seeding the Database.");
                    throw;
                }
            }

            host.Run();
        }
Exemple #2
0
        public static void Main(string[] args)
        {
            var host = CreateWebHostBuilder(args).Build();

            // 创建可用于解析作用域服务的新 Microsoft.Extensions.DependencyInjection.IServiceScope。
            using (var scope = host.Services.CreateScope())
            {
                var services      = scope.ServiceProvider;
                var loggerFactory = services.GetRequiredService <ILoggerFactory>();
                var env           = services.GetRequiredService <IHostingEnvironment>();
                if (env.IsDevelopment())
                {
                    try
                    {
                        // 从 system.IServicec提供程序获取 T 类型的服务。
                        var myContext = services.GetRequiredService <MyContext>();
                        DBSeed.SeedAsync(myContext).Wait();
                    }
                    catch (Exception e)
                    {
                        var logger = loggerFactory.CreateLogger <Program>();
                        logger.LogError(e, "Error occured seeding the Database.");
                    }
                }
            }

            // 运行 web 应用程序并阻止调用线程, 直到主机关闭。
            // 创建完 WebHost 之后,便调用它的 Run 方法,而 Run 方法会去调用 WebHost 的 StartAsync 方法
            // 将Initialize方法创建的Application管道传入以供处理消息
            // 执行HostedServiceExecutor.StartAsync方法
            host.Run();
        }
Exemple #3
0
        public static void Main(string[] args)
        {
            var host = CreateWebHostBuilder(args).Build();

            //CreateWebHostBuilder(args).Build().Run();

            using (var scope = host.Services.CreateScope())
            {
                var services      = scope.ServiceProvider;
                var loggerFactory = services.GetRequiredService <ILoggerFactory>();
                try
                {
                    var configuration = services.GetRequiredService <IConfiguration>();
                    if (configuration.GetSection("AppSettings")["SeedDBEnabled"].ObjToBool())
                    {
                        var myContext = services.GetRequiredService <MyContext>();
                        DBSeed.SeedAsync(myContext).Wait();
                    }
                }
                catch (Exception e)
                {
                    var logger = loggerFactory.CreateLogger <Program>();
                    logger.LogError(e, "Error occured seeding the Database.");
                    throw;
                }
            }

            // 运行 web 应用程序并阻止调用线程, 直到主机关闭。
            // 创建完 WebHost 之后,便调用它的 Run 方法,而 Run 方法会去调用 WebHost 的 StartAsync 方法
            // 将Initialize方法创建的Application管道传入以供处理消息
            // 执行HostedServiceExecutor.StartAsync方法
            host.Run();
        }
Exemple #4
0
        static void Main(string[] args)
        {
            var myContext = new MyContext();

            DBSeed.SeedAsync(myContext).Wait();


            #region Redis
            //var conf = new ConfigurationBuilder()
            //    .AddJsonFile("appsettings.json")
            //    .Build();


            //string key = "123";
            //for (int i = 0; i < 500; i++)
            //{
            //    var msg = new { Name = "王维" + i, Status = 1, Gender = 0, Image = "http://localhost:7779/Image/driver.png", Remark = "我是一个特别搞笑的人,他们都叫我小白", IdCard = 610124199303083650, Title = "待办任务" };

            //    string json = JsonConvert.SerializeObject(msg);
            //    var redis = RedisFactory.GetRedisClient(key);
            //    redis.StringSet(key, json);

            //}
            #endregion

            Console.ReadKey();
        }
Exemple #5
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILogger <Startup> logger,
                              DBSeed dBSeed, SchedulerCenterServer schedulerCenter)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            // 添加全局监控(必须放在外层,否则不能返回)
            app.UseMiddleware <AutoUseMiddleware>();

            app.UseHttpsRedirection();

            app.UseRouting();

            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });

            _logger = logger;
            // 添加Swagger
            app.UseSwaggerMildd();
            // 添加种子数据
            app.UseSeedDataMildd(dBSeed);
            // 开启QuartzNetJob调度服务
            app.UseQuartzJobMildd(logger, dBSeed, schedulerCenter);
        }
Exemple #6
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            // If in Development, Get Context from scope, and seed the SQLite DB.
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
                using (var scope = app.ApplicationServices.CreateScope()) // When done, dispose. Get accesspoint to stuff in the services
                {
                    var ctx = scope.ServiceProvider.GetService <CShoesContext>();
                    DBSeed.SeedDB(ctx);
                }
            }
            // Else, get Context and ensure that the database actually exists, or create it.
            else
            {
                using (var scope = app.ApplicationServices.CreateScope())
                {
                    var ctx = scope.ServiceProvider.GetService <CShoesContext>(); //
                    ctx.Database.EnsureCreated();
                }
                app.UseHsts();
            }

            // Setup CORS to only allow requests from featured URL's. Allow any method/header, cause lazy
            app.UseCors("AllowSpecificOrigin");
            app.UseMvc();
        }
Exemple #7
0
 static void Seed()
 {
     Console.WriteLine("Hello World!");
     using var context = new ReservationContext();
     var seeder = new DBSeed();
     //seeder.SeedDataToDB();
 }
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
                using (var scope = app.ApplicationServices.CreateScope())
                {
                    var ctx = scope.ServiceProvider.GetService <PetshopContex>();
                    DBSeed.SeedDB(ctx);
                }
            }
            else
            {
                using (var scope = app.ApplicationServices.CreateScope())
                {
                    var ctx = scope.ServiceProvider.GetService <PetshopContex>();
                    ctx.Database.EnsureCreated();
                }
                app.UseHsts();
            }

            app.UseCors("AllowSpecificOrigin");
            app.UseHttpsRedirection();
            app.UseAuthentication();
            app.UseMvc();
        }
Exemple #9
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            app.UseDeveloperExceptionPage();

            if (env.IsDevelopment()) // If in Dev..
            {
                app.UseDeveloperExceptionPage();
                using (var scope = app.ApplicationServices.CreateScope())          // When done, dispose. Get accesspoint to stuff in the services
                {
                    var ctx = scope.ServiceProvider.GetService <PetShopContext>(); // Set ctx to reference to PetShopContext
                    DBSeed.SeedDB(ctx);
                }
            }
            else
            {
                using (var scope = app.ApplicationServices.CreateScope())
                {
                    var ctx = scope.ServiceProvider.GetService <PetShopContext>();
                    ctx.Database.EnsureCreated();
                }
                app.UseHsts();
            }

            app.UseCors(builder =>
                        builder.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod());

            app.UseAuthentication();

            app.UseMvc();
        }
Exemple #10
0
        public async Task <object> Get()
        {
            DBSeed.Seed();

            BlogArticleRepository blogArticleRepository = new BlogArticleRepository();

            return(await blogArticleRepository.Query());
        }
 static FreeSQL()
 {
     _freesql = new FreeSql.FreeSqlBuilder()
                .UseConnectionString(ProviderToFreesqlDbType(DbProvider), DbConnection)
                .Build();
     //FluentApi.Config(_freesql);
     DBSeed.Ensure(_freesql);
 }
Exemple #12
0
        public IContainer DICollections()
        {
            var basePath = Microsoft.DotNet.PlatformAbstractions.ApplicationEnvironment.ApplicationBasePath;

            IServiceCollection services = new ServiceCollection();

            services.AddAutoMapper(typeof(Startup));

            services.AddSingleton(new Appsettings(basePath));
            services.AddSingleton <IRedisCacheManager, RedisCacheManager>();
            services.AddScoped <Blog.Core.Model.Models.DBSeed>();
            services.AddScoped <Blog.Core.Model.Models.MyContext>();

            services.AddScoped <SqlSugar.ISqlSugarClient>(o =>
            {
                return(new SqlSugar.SqlSugarClient(new SqlSugar.ConnectionConfig()
                {
                    ConnectionString = BaseDBConfig.ConnectionString, //必填, 数据库连接字符串
                    DbType = (SqlSugar.DbType)BaseDBConfig.DbType,    //必填, 数据库类型
                    IsAutoCloseConnection = true,                     //默认false, 时候知道关闭数据库连接, 设置为true无需使用using或者Close操作
                    IsShardSameThread = true,                         //共享线程
                    InitKeyType = SqlSugar.InitKeyType.SystemTable    //默认SystemTable, 字段信息读取, 如:该属性是不是主键,标识列等等信息
                }));
            });

            //实例化 AutoFac  容器
            var builder = new ContainerBuilder();
            //builder.RegisterType<AdvertisementServices>().As<IAdvertisementServices>();

            //指定已扫描程序集中的类型注册为提供所有其实现的接口。

            var servicesDllFile   = Path.Combine(basePath, "Blog.Core.Services.dll");
            var assemblysServices = Assembly.LoadFrom(servicesDllFile);

            builder.RegisterAssemblyTypes(assemblysServices)
            .AsImplementedInterfaces()
            .InstancePerLifetimeScope()
            .EnableInterfaceInterceptors();

            var repositoryDllFile   = Path.Combine(basePath, "Blog.Core.Repository.dll");
            var assemblysRepository = Assembly.LoadFrom(repositoryDllFile);

            builder.RegisterAssemblyTypes(assemblysRepository).AsImplementedInterfaces();

            //将services填充到Autofac容器生成器中
            builder.Populate(services);

            //使用已进行的组件登记创建新容器
            var ApplicationContainer = builder.Build();

            var blogservice = ApplicationContainer.Resolve <IBlogArticleServices>();
            var myContext   = ApplicationContainer.Resolve <MyContext>();

            DBSeed.SeedAsync(myContext).Wait();


            return(ApplicationContainer);
        }
Exemple #13
0
        protected override void Seed(BlueEconomics.Platform.Infrastructure.BlueDbContext context)
        {
            //  This method will be called after migrating to the latest version.

            //  You can use the DbSet<T>.AddOrUpdate() helper extension method
            //  to avoid creating duplicate seed data. E.g.
            //
            DBSeed.Seed(context);
        }
Exemple #14
0
        /// <summary>
        /// 添加种子数据
        /// </summary>
        /// <param name="app"></param>
        /// <param name="dBSeed"></param>
        public static void UseSeedDataMildd(this IApplicationBuilder app, DBSeed dBSeed)
        {
            if (app == null)
            {
                throw new ArgumentNullException(nameof(app));
            }

            // 创建数据库
            dBSeed.CreateDataBase();
            // 创建种子数据
            dBSeed.CreateDataInfo();
        }
Exemple #15
0
 public async Task InvokeAsync(HttpContext context)
 {
     if (Appsettings.app("AppSettings", "SeedDBEnabled").ObjToBool() || Appsettings.app("AppSettings", "SeedDBDataEnabled").ObjToBool())
     {
         DBSeed.SeedAsync(_myContext, _env.WebRootPath).Wait();
         await _next(context);
     }
     else
     {
         await _next(context);
     }
 }
Exemple #16
0
        public static void Main(string[] args)
        {
            var host = CreateWebHostBuilder(args).Build();

            using (IServiceScope scope = host.Services.CreateScope())
            {
                var services = scope.ServiceProvider;
                var ctx      = scope.ServiceProvider.GetService <WebShopDbContext>();
                DBSeed.SeedDB(ctx);
            }

            host.Run();
        }
Exemple #17
0
        public static void Main(string[] args)
        {
            XmlDocument log4netConfig = new XmlDocument();

            log4netConfig.Load(File.OpenRead("Log4net.config"));

            var repo = log4net.LogManager.CreateRepository(
                Assembly.GetEntryAssembly(), typeof(log4net.Repository.Hierarchy.Hierarchy));

            log4net.Config.XmlConfigurator.Configure(repo, log4netConfig["log4net"]);

            // 生成承载 web 应用程序的 Microsoft.AspNetCore.Hosting.IWebHost。Build是WebHostBuilder最终的目的,将返回一个构造的WebHost,最终生成宿主。
            var host      = CreateHostBuilder(args).Build();
            var hadSeeded = Environment.GetEnvironmentVariable("ASPNETCORE_HAD_SEED");

            if (string.IsNullOrWhiteSpace(hadSeeded))
            {
                // 创建可用于解析作用域服务的新 Microsoft.Extensions.DependencyInjection.IServiceScope。
                using (var scope = host.Services.CreateScope())
                {
                    var services      = scope.ServiceProvider;
                    var loggerFactory = services.GetRequiredService <ILoggerFactory>();

                    try
                    {
                        // 从 system.IServicec提供程序获取 T 类型的服务。
                        // 数据库连接字符串是在 Model 层的 Seed 文件夹下的 MyContext.cs 中
                        var configuration = services.GetRequiredService <IConfiguration>();
                        if (configuration.GetSection("AppSettings")["SeedDBEnabled"].ObjToBool() || configuration.GetSection("AppSettings")["SeedDBDataEnabled"].ObjToBool())
                        {
                            var myContext = services.GetRequiredService <MyContext>();
                            var Env       = services.GetRequiredService <IWebHostEnvironment>();
                            DBSeed.SeedAsync(myContext, Env.WebRootPath).Wait();
                            Environment.SetEnvironmentVariable("ASPNETCORE_HAD_SEED", "1");
                        }
                    }
                    catch (Exception e)
                    {
                        log.Error($"Error occured seeding the Database.\n{e.Message}");
                        throw;
                    }
                }
            }

            // 运行 web 应用程序并阻止调用线程, 直到主机关闭。
            // 创建完 WebHost 之后,便调用它的 Run 方法,而 Run 方法会去调用 WebHost 的 StartAsync 方法
            // 将Initialize方法创建的Application管道传入以供处理消息
            // 执行HostedServiceExecutor.StartAsync方法
            // ※※※※ 有异常,查看 Log 文件夹下的异常日志 ※※※※
            host.Run();
        }
        public IContainer DICollections()
        {
            var basePath = Microsoft.DotNet.PlatformAbstractions.ApplicationEnvironment.ApplicationBasePath;

            IServiceCollection services = new ServiceCollection();

            services.AddAutoMapper(typeof(Startup));

            services.AddScoped <IHostingEnvironment, HostingEnvironment>();
            services.AddSingleton(new Appsettings(basePath));
            services.AddSingleton <IRedisCacheManager, RedisCacheManager>();
            services.AddScoped <Blog.Core.Model.Models.DBSeed>();
            services.AddScoped <Blog.Core.Model.Models.MyContext>();


            //实例化 AutoFac  容器
            var builder = new ContainerBuilder();
            //builder.RegisterType<AdvertisementServices>().As<IAdvertisementServices>();

            //指定已扫描程序集中的类型注册为提供所有其实现的接口。

            var servicesDllFile   = Path.Combine(basePath, "Blog.Core.Services.dll");
            var assemblysServices = Assembly.LoadFrom(servicesDllFile);

            builder.RegisterAssemblyTypes(assemblysServices)
            .AsImplementedInterfaces()
            .InstancePerLifetimeScope()
            .EnableInterfaceInterceptors();

            var repositoryDllFile   = Path.Combine(basePath, "Blog.Core.Repository.dll");
            var assemblysRepository = Assembly.LoadFrom(repositoryDllFile);

            builder.RegisterAssemblyTypes(assemblysRepository).AsImplementedInterfaces();

            //将services填充到Autofac容器生成器中
            builder.Populate(services);

            //使用已进行的组件登记创建新容器
            var ApplicationContainer = builder.Build();

            var blogservice = ApplicationContainer.Resolve <IBlogArticleServices>();
            var myContext   = ApplicationContainer.Resolve <MyContext>();

            DBSeed.SeedAsync(myContext).Wait();


            return(ApplicationContainer);
        }
Exemple #19
0
        public static void Main(string[] args)
        {
            // 配置 Serilog
            #region Serilog
            //Log.Logger = new LoggerConfiguration()
            //    // 最小的日志输出级别
            //    .MinimumLevel.Information()
            //    // 日志调用类命名空间如果以 Microsoft 开头,覆盖日志输出最小级别为 Information
            //    .MinimumLevel.Override("Microsoft", LogEventLevel.Information)
            //    .Enrich.FromLogContext()
            //    // 配置日志输出到控制台
            //    .WriteTo.Console()
            //    // 配置日志输出到文件,文件输出到当前项目的 logs 目录下
            //    // 日记的生成周期为每天
            //    .WriteTo.File(Path.Combine("logs", @"logx.txt"), rollingInterval: RollingInterval.Day)
            //    // 创建 logger
            //    .CreateLogger();
            #endregion



            // 创建可用于解析作用域服务的新 Microsoft.Extensions.DependencyInjection.IServiceScope。
            //CreateHostBuilder(args).Build().Run();//原本
            // 生成承载 web 应用程序的 Microsoft.AspNetCore.Hosting.IWebHost。Build是WebHostBuilder最终的目的,将返回一个构造的WebHost,最终生成宿主。
            var host = CreateHostBuilder(args).Build();

            // 创建可用于解析作用域服务的新 Microsoft.Extensions.DependencyInjection.IServiceScope。
            using (var scope = host.Services.CreateScope())
            {
                var services = scope.ServiceProvider;
                try
                {
                    var configuration = services.GetRequiredService <IConfiguration>();
                    if (Convert.ToBoolean(configuration.GetSection("AppSettings")["SeedDBEnabled"]))
                    {
                        var myContext = services.GetRequiredService <MyContext>();
                        DBSeed.SeedAsync(myContext).Wait();
                    }
                }
                catch (Exception e)
                {
                    throw;
                }
            }
            host.Run();
        }
Exemple #20
0
        private static void CreateDbIfNotExists(IHost host)
        {
            using (var scope = host.Services.CreateScope())
            {
                var services = scope.ServiceProvider;

                try
                {
                    var context = services.GetRequiredService <SellersContext>();
                    DBSeed.Initialize(context);
                }
                catch (Exception ex)
                {
                    var logger = services.GetRequiredService <ILogger <Program> >();
                    logger.LogError(ex, "An error occurred creating the DB.");
                }
            }
        }
Exemple #21
0
        public static void UseSeedDataMildd(this IApplicationBuilder app, MySqlContext mySqlContext, string webRootPath)
        {
            if (app == null)
            {
                throw new ArgumentNullException(nameof(app));
            }

            try
            {
                if (AppSettings.app("AppSettings", "SeedDB").ObjToBool() || AppSettings.app("AppSettings", "SeedDBData").ObjToBool())
                {
                    DBSeed.SeedAsyncByEFCore(mySqlContext, webRootPath).Wait();
                }
            }
            catch (Exception e)
            {
                throw new Exception($"自动初始化数据错误,错误信息:\n{e.Message}");
            }
        }
Exemple #22
0
        public static void Main(string[] args)
        {
            Logger logger = LogManager.GetCurrentClassLogger();

            try
            {
                var host = CreateHostBuilder(args).Build();

                logger.Trace("网站启动中...");

                using (IServiceScope scope = host.Services.CreateScope())
                {
                    logger.Trace("初始化NLog");

                    //确保NLog.config中连接字符串与appsettings.json中同步
                    NLogExtensions.EnsureNlogConfig("NLog.config", "mssql", scope.ServiceProvider.GetRequiredService <IConfiguration>().GetSection("ConnectionStrings:PHDbContext").Value);

                    logger.Trace("初始化数据库");

                    //初始化数据库
                    DBSeed.Initialize(scope.ServiceProvider.GetRequiredService <IUnitOfWork <PHDbContext> >());

                    //for test -start
                    //用于查看彩色控制台样式,以及日志等级过滤

                    /*logger.Trace("Test For Trace");
                    *  logger.Debug("Test For Debug");
                    *  logger.Info("Test For Info");
                    *  logger.Warn("Test For Warn");
                    *  logger.Error("Test For Error");
                    *  logger.Fatal("Test For Fatal");*/
                    //for test -end
                }
                logger.Trace("网站启动完成");

                host.Run();
            }
            catch (Exception ex)
            {
                logger.Fatal(ex, "网站启动失败");
                throw;
            }
        }
Exemple #23
0
        /// <summary>
        /// 开启QuartzNetJob调度服务
        /// </summary>
        public async static void UseQuartzJobMildd(this IApplicationBuilder app, ILogger <Startup> logger,
                                                   DBSeed dBSeed, SchedulerCenterServer schedulerCenter)
        {
            if (app == null)
            {
                throw new ArgumentNullException(nameof(app));
            }

            var tasksQzs = dBSeed.GetTable <TasksQz>().Response?.Where(t => t.IsStart).ToList();

            Console.WriteLine("启动任务数量:" + tasksQzs.Count);
            foreach (var item in tasksQzs)
            {
                var res = await schedulerCenter.AddScheduleJobAsync(item);

                string msg = res.Success ? "启动任务:" + item.Name : "启动任务失败:" + item.Name;
                Console.WriteLine(msg);
                logger.LogInformation(msg);
            }
        }
Exemple #24
0
        public static void UseSeedDataMildd(this IApplicationBuilder app, MyContext myContext, string webRootPath)
        {
            if (app == null)
            {
                throw new ArgumentNullException(nameof(app));
            }

            try
            {
                if (Appsettings.app("AppSettings", "SeedDBEnabled").ObjToBool() || Appsettings.app("AppSettings", "SeedDBDataEnabled").ObjToBool())
                {
                    DBSeed.SeedAsync(myContext, webRootPath).Wait();
                }
            }
            catch (Exception e)
            {
                log.Error($"Error occured seeding the Database.\n{e.Message}");
                throw;
            }
        }
Exemple #25
0
    private static void createConnection()
    {
        try
        {
            if (!System.IO.File.Exists(Application.dataPath + "mainDb.sqlite"))
            {
                // db seed will create a new database with tables
                DBSeed seed = new DBSeed(connectionString);
                seed.resetDatabase();

                Debug.LogWarning("Database not found. Creating a new one. This leads to a complete loss of data.");
            }
            dbConnection = new SqliteConnection(connectionString);
            dbConnection.Open();
        }
        catch (Exception e)
        {
            Debug.LogError(e);
        }
    }
Exemple #26
0
        public static void Main(string[] args)
        {
            // 生成承载 web 应用程序的 Microsoft.AspNetCore.Hosting.IWebHost。Build是WebHostBuilder最终的目的,将返回一个构造的WebHost,最终生成宿主。
            var host = CreateWebHostBuilder(args).Build();

            // 创建可用于解析作用域服务的新 Microsoft.Extensions.DependencyInjection.IServiceScope。
            using (var scope = host.Services.CreateScope())
            {
                var services      = scope.ServiceProvider;
                var loggerFactory = services.GetRequiredService <ILoggerFactory>();

                //执行完startup类之后才执行下面
                #region  生成数据库   生成一次之后就可以注释掉了  以防重复执行后覆盖数据   或者在 appsettings.json修改 SeedDBEnabled 为false
                try
                {
                    // 从 system.IServicec提供程序获取 T 类型的服务。
                    // 为了大家的数据安全,这里先注释掉了
                    // 数据库连接字符串是在 Model 层的 Seed 文件夹下的 MyContext.cs 中
                    var configuration = services.GetRequiredService <IConfiguration>();
                    if (configuration.GetSection("AppSettings")["SeedDBEnabled"].ObjToBool())
                    {
                        var myContext = services.GetRequiredService <MyContext>();
                        DBSeed.SeedAsync(myContext).Wait();
                    }
                }
                catch (Exception e)
                {
                    var logger = loggerFactory.CreateLogger <Program>();
                    logger.LogError(e, "Error occured seeding the Database.");
                    throw;
                }
            }

            #endregion
            // 运行 web 应用程序并阻止调用线程, 直到主机关闭。
            // 创建完 WebHost 之后,便调用它的 Run 方法,而 Run 方法会去调用 WebHost 的 StartAsync 方法
            // 将Initialize方法创建的Application管道传入以供处理消息
            // 执行HostedServiceExecutor.StartAsync方法
            host.Run();
        }
Exemple #27
0
        public static void Main(string[] args)
        {
            try
            {
                var host = CreateHostBuilder(args).Build();
                using (IServiceScope scope = host.Services.CreateScope())
                {
                    //using MS.WebCore.Logger
                    //添加以上using引用
                    ///确保NLog.config中连接字符串与appsettings.json中同步
                    NLogExtensions.EnsureNlogConfig("NLog.config", "MySQL", scope.ServiceProvider.GetRequiredService <IConfiguration>().GetSection("ConectionStrings:MSDbContext").Value);

                    //初始化数据库
                    DBSeed.Initialize(scope.ServiceProvider.GetRequiredService <IUnitOfWork <MSDbContext> >());
                }
                host.Run();
            }
            catch (Exception ex)
            {
                throw;
            }
        }
        public static void Main(string[] args)
        {
            var host = BuildWebHost(args);


            using (var scope = host.Services.CreateScope())
            {
                var services = scope.ServiceProvider;

                try
                {
                    var context = services.GetRequiredService <ApplicationDbContext>();
                    DBSeed.Seed(context);
                }
                catch (Exception ex)
                {
                    var logger = services.GetRequiredService <ILogger <Program> >();
                    logger.LogError(ex, "An error occurred while seeding the database.");
                }
            }

            host.Run();
        }
Exemple #29
0
        public static void Main(string[] args)
        {
            var host = CreateWebHostBuilder(args).Build();

            // 创建可用于解析作用域服务的新 Microsoft.Extensions.DependencyInjection.IServiceScope。
            using (var scope = host.Services.CreateScope())
            {
                var service       = scope.ServiceProvider;
                var loggerFactory = service.GetRequiredService <ILoggerFactory>();
                try
                {
                    var myContext = service.GetRequiredService <MyContext>();
                    DBSeed.SeedAsync(myContext).Wait();
                }
                catch (Exception e)
                {
                    var logger = loggerFactory.CreateLogger <Program>();
                    logger.LogError(e, "Error occured seeding the Database.");
                }
            }

            host.Run();
        }
Exemple #30
0
        public static void Main(string[] args)
        {
            // 生成承载 web 应用程序的 Microsoft.AspNetCore.Hosting.IWebHost。Build是WebHostBuilder最终的目的,将返回一个构造的WebHost,最终生成宿主。
            var host = CreateHostBuilder(args).Build();

            // 创建可用于解析作用域服务的新 Microsoft.Extensions.DependencyInjection.IServiceScope。
            using (var scope = host.Services.CreateScope())
            {
                var services      = scope.ServiceProvider;
                var loggerFactory = services.GetRequiredService <ILoggerFactory>();

                try
                {
                    // 从 system.IServicec提供程序获取 T 类型的服务。
                    // 数据库连接字符串是在 Model 层的 Seed 文件夹下的 MyContext.cs 中
                    var configuration = services.GetRequiredService <IConfiguration>();
                    if (configuration.GetSection("AppSettings")["SeedDBEnabled"].ObjToBool() || configuration.GetSection("AppSettings")["SeedDBDataEnabled"].ObjToBool())
                    {
                        var myContext = services.GetRequiredService <MyContext>();
                        var Env       = services.GetRequiredService <IWebHostEnvironment>();
                        DBSeed.SeedAsync(myContext, Env.WebRootPath).Wait();
                    }
                }
                catch (Exception e)
                {
                    log.Error($"Error occured seeding the Database.\n{e.Message}");
                    throw;
                }
            }

            // 运行 web 应用程序并阻止调用线程, 直到主机关闭。
            // 创建完 WebHost 之后,便调用它的 Run 方法,而 Run 方法会去调用 WebHost 的 StartAsync 方法
            // 将Initialize方法创建的Application管道传入以供处理消息
            // 执行HostedServiceExecutor.StartAsync方法
            // ※※※※ 有异常,查看 Log 文件夹下的异常日志 ※※※※
            host.Run();
        }