Ejemplo n.º 1
0
        /// <summary>
        /// Optional override to create listeners (like tcp, http) for this service instance.
        /// </summary>
        /// <returns>The collection of listeners.</returns>
        protected override IEnumerable <ServiceInstanceListener> CreateServiceInstanceListeners()
        {
            var configuration = GetConfiguration();

            Log.Logger = CreateSerilogLogger(configuration);

            return(new ServiceInstanceListener[]
            {
                new ServiceInstanceListener(serviceContext =>
                                            new KestrelCommunicationListener(serviceContext, "ServiceEndpoint", (url, listener) =>
                {
                    ServiceEventSource.Current.ServiceMessage(serviceContext, $"Starting Kestrel on {url}");

                    var host = new WebHostBuilder()
                               .UseKestrel()
                               .ConfigureServices(
                        services => services
                        .AddSingleton <StatelessServiceContext>(serviceContext))
                               .UseContentRoot(Directory.GetCurrentDirectory())
                               .UseStartup <Startup>()
                               .UseConfiguration(configuration)
                               .UseSerilog()
                               .UseApplicationInsights()
                               .UseServiceFabricIntegration(listener, ServiceFabricIntegrationOptions.None)
                               .UseUrls(url)
                               .Build();

                    host.MigrateDbContext <PersistedGrantDbContext>((_, __) => { })
                    .MigrateDbContext <ApplicationDbContext>((context, services) =>
                    {
                        var env = services.GetService <IHostingEnvironment>();
                        var logger = services.GetService <ILogger <ApplicationDbContextSeed> >();
                        var settings = services.GetService <IOptions <AppSettings> >();

                        new ApplicationDbContextSeed()
                        .SeedAsync(context, env, logger, settings)
                        .Wait();
                    })
                    .MigrateDbContext <ConfigurationDbContext>((context, services) =>
                    {
                        new ConfigurationDbContextSeed()
                        .SeedAsync(context, configuration)
                        .Wait();
                    });

                    return host;
                }))
            });
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Optional override to create listeners (like tcp, http) for this service instance.
        /// </summary>
        /// <returns>The collection of listeners.</returns>
        protected override IEnumerable <ServiceInstanceListener> CreateServiceInstanceListeners()
        {
            var configuration = GetConfiguration();

            Log.Logger = CreateSerilogLogger(configuration);

            return(new ServiceInstanceListener[]
            {
                new ServiceInstanceListener(serviceContext =>
                                            new KestrelCommunicationListener(serviceContext, "ServiceEndpoint", (url, listener) =>
                {
                    ServiceEventSource.Current.ServiceMessage(serviceContext, $"Starting Kestrel on {url}");

                    var host = new WebHostBuilder()
                               .UseKestrel()
                               .ConfigureServices(
                        services => services
                        .AddSingleton <StatelessServiceContext>(serviceContext))
                               .UseContentRoot(Directory.GetCurrentDirectory())
                               .UseStartup <Startup>().UseWebRoot("Pics")
                               .UseConfiguration(configuration)
                               .UseSerilog()
                               .UseApplicationInsights()
                               .UseServiceFabricIntegration(listener, ServiceFabricIntegrationOptions.None)
                               .UseUrls(url)
                               .Build();

                    ServiceEventSource.Current.ServiceMessage(serviceContext, $"Applying migrations ({AppName})...");

                    host.MigrateDbContext <MarketingContext>((context, services) =>
                    {
                        var logger = services.GetService <ILogger <MarketingContextSeed> >();

                        new MarketingContextSeed()
                        .SeedAsync(context, logger)
                        .Wait();
                    });

                    return host;
                }))
            });
        }