Exemple #1
0
        static void Main()
        {
            var builder = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).
                          AddJsonFile("appsettings.json");

            var appSettingsConfig = builder.Build();

            using (var loggerFactory = new LoggerFactory())
            {
                var config = new JobHostConfiguration
                {
                    DashboardConnectionString = "",
                    StorageConnectionString   = appSettingsConfig.GetConnectionString("AzureWebJobsStorage")
                };


                var instrumentationKey =
                    ConfigurationManager.AppSettings["APPINSIGHTS_INSTRUMENTATIONKEY"];

                config.LoggerFactory = loggerFactory.AddApplicationInsights(instrumentationKey, null).AddConsole();

                config.UseDurableTask(new DurableTaskExtension
                {
                    HubName = "UpdateSoftware",
                });

                var host = new JobHost(config);
                host.RunAndBlock();
            }
        }
        private static void Main(string[] args)
        {
            using (var loggerFactory = new LoggerFactory())
            {
                var config = new JobHostConfiguration
                {
                    DashboardConnectionString = "",
                    StorageConnectionString   = ConfigurationManager.AppSettings["AzureWebJobsStorage"]
                };


                var instrumentationKey =
                    ConfigurationManager.AppSettings["APPINSIGHTS_INSTRUMENTATIONKEY"];

                config.LoggerFactory = loggerFactory.AddApplicationInsights(instrumentationKey, null).AddConsole();

                config.UseDurableTask(new DurableTaskExtension
                {
                    HubName = "UpdateSoftware"
                });

                var host = new JobHost(config);
                host.RunAndBlock();
            }
        }
        /// <summary>
        /// This is the entry point of the service host process.
        /// </summary>
        private static void Main()
        {
            try
            {
                // The call initializes TelemetryConfiguration that will create and Intialize modules.
                TelemetryConfiguration configuration = TelemetryConfiguration.Active;

                // LoggerFactory registration in container
                LoggerFactory loggerFactory = new LoggerFactory();
                loggerFactory.AddApplicationInsights(() => new TelemetryClient(), LogLevel.Trace);
                LoggingContext.Initialize(loggerFactory);

                // The ServiceManifest.XML file defines one or more service type names.
                // Registering a service maps a service type name to a .NET type.
                // When Service Fabric creates an instance of this service type,
                // an instance of the class is created in this host process.

                ServiceRuntime.RegisterServiceAsync(
                    "Adapters.ServiceBusDependencyReceiverType",
                    context => new ServiceBusDependencyReceiver(context)).GetAwaiter().GetResult();

                ServiceEventSource.Current.ServiceTypeRegistered(Process.GetCurrentProcess().Id, typeof(ServiceBusDependencyReceiver).Name);

                // Prevents this host process from terminating so services keep running.
                Thread.Sleep(Timeout.Infinite);
            }
            catch (Exception e)
            {
                ServiceEventSource.Current.ServiceHostInitializationFailed(e.ToString());
                throw;
            }
        }
Exemple #4
0
        static void Main(string[] args)
        {
            //Program.LocalTest();

            /*
             * Este código realiza los cambios siguientes:
             * Agrega un proveedor de registro de Application Insights con un filtrado predeterminado;
             * toda la información y los registros de nivel superior se enviarán ahora a la consola y a
             * Application Insights cuando la ejecución se realiza localmente.
             * Coloca el objeto LoggerFactory en un bloque using para asegurarse de que la salida del registro
             * se vacíe cuando se cierre el host.
             */
            using (var loggerFactory = new LoggerFactory())
            {
                var config             = new JobHostConfiguration();
                var instrumentationKey =
                    ConfigurationManager.AppSettings["APPINSIGHTS_INSTRUMENTATIONKEY"]; //Install-Package System.Configuration.ConfigurationManager -version 4.4.1
                config.DashboardConnectionString = "";
                config.LoggerFactory             = loggerFactory
                                                   .AddApplicationInsights(instrumentationKey, null)
                                                   .AddConsole();
                var host = new JobHost(config);
                host.RunAndBlock();
            }
        }
Exemple #5
0
 static void Main()
 {
     using (var loggerFactory = new LoggerFactory())
     {
         var config             = new JobHostConfiguration();
         var instrumentationKey =
             ConfigurationManager.AppSettings["APPINSIGHTS_INSTRUMENTATIONKEY"];
         config.DashboardConnectionString = "";
         config.LoggerFactory             = loggerFactory
                                            .AddApplicationInsights(instrumentationKey, null)
                                            .AddConsole();
         var host = new JobHost(config);
         host.RunAndBlock();
     }
 }
        // Please set the following connection strings in app.config for this WebJob to run:
        // AzureWebJobsDashboard //I disabled this
        // and AzureWebJobsStorage //for saving console/logging output
        static void Main()
        {
            ServicePointManager.DefaultConnectionLimit = Int32.MaxValue;

            using (var loggerFactory = new LoggerFactory())
            {
                var config             = new JobHostConfiguration();
                var instrumentationKey =
                    ConfigurationManager.AppSettings["APPINSIGHTS_INSTRUMENTATIONKEY"];
                config.DashboardConnectionString = "";
                config.LoggerFactory             = loggerFactory
                                                   .AddApplicationInsights(instrumentationKey, null)
                                                   .AddConsole();

                var host = new JobHost(config);
                host.Call(typeof(Functions).GetMethod("ProcessMethod")); //thread blocked in here- if it falls over want azure to report failure/ restart

                throw new AppDomainUnloadedException($"{typeof(Program).Assembly.GetName().Name} - WebJob has terminated");
                //host.RunAndBlock(); //will block thread and wait for events, we don't not interested in events or schedules
            }
        }
Exemple #7
0
        // Please set the following connection strings in app.config for this WebJob to run:
        // AzureWebJobsDashboard and AzureWebJobsStorage
        static void Main()
        {
            var config = new JobHostConfiguration();

            if (config.IsDevelopment)
            {
                config.UseDevelopmentSettings();
            }

            var loggerFactory      = new LoggerFactory();
            var instrumentationKey = ConfigurationManager.AppSettings["APPINSIGHTS_INSTRUMENTATIONKEY"];

            config.DashboardConnectionString = "";
            config.LoggerFactory             = loggerFactory
                                               .AddApplicationInsights(instrumentationKey, null)
                                               .AddConsole();

            var host = new JobHost(config);

            // The following code ensures that the WebJob will be running continuously
            host.RunAndBlock();
        }
Exemple #8
0
        public static IContainer ConfigureContainer(HttpConfiguration httpConfig, ServiceContext serviceContext)
        {
            var containerBuilder = new ContainerBuilder();

            // TelemetryClient should be used per request
            containerBuilder.RegisterType <TelemetryClient>().InstancePerLifetimeScope();

            containerBuilder.RegisterType <ServiceFabricContextOwinMiddleware>();

            containerBuilder.RegisterApiControllers(Assembly.GetExecutingAssembly());

            containerBuilder.RegisterInstance(serviceContext);

            var dependencyAddress = ConfigurationManager.AppSettings.GetRefValue <string>("DependencyAddress");

            containerBuilder.Register((e) => ServiceFabricHelper.CreateServiceProxyWithCorrelation <IDependency>(dependencyAddress))
            .As <IDependency>();

            // register httpConfig itself in the container
            containerBuilder.RegisterInstance(httpConfig);

            // LoggerFactory registration in container
            var loggerFactory = new LoggerFactory();

            containerBuilder.RegisterInstance(loggerFactory)
            .As <ILoggerFactory>();

            IContainer container = containerBuilder.Build();

            // LoggerFactory App Insights configuration
            loggerFactory.AddApplicationInsights(() => container.Resolve <TelemetryClient>(), LogLevel.Trace);
            LoggingContext.Initialize(loggerFactory);

            // set Web API Dependency Resolver
            httpConfig.DependencyResolver = new AutofacWebApiDependencyResolver(container);

            return(container);
        }
        static void Main(string[] args)
        {
            var loggerFactory = new LoggerFactory();

            var serviceCollection = new ServiceCollection()
                                    .AddSingleton <ILoggerFactory>(loggerFactory)
                                    .AddSingleton <IHostingEnvironment>(new HostingEnvironment()
            {
                ContentRootPath = Directory.GetCurrentDirectory()
            })
                                    .AddApplicationInsightsTelemetry(new ApplicationInsightsServiceOptions
            {
                DeveloperMode      = true,
                InstrumentationKey = "your instrumentation key",
            })
                                    .Configure <ApplicationInsightsLoggerOptions>(o => o.IncludeEventId = true);
            var serviceProvider = serviceCollection.BuildServiceProvider();

            loggerFactory.AddApplicationInsights(serviceProvider, LogLevel.Trace);

            var logger = loggerFactory.CreateLogger("Sample logger");

            logger.LogWarning("Sample {data} logged", 12345);
        }
        static void Main(string[] args)
        {
            using (var loggerFactory = new LoggerFactory())
            {
                var config = new JobHostConfiguration();

                config.DashboardConnectionString = "";

                var instrumentationKey =
                    ConfigurationManager.AppSettings["APPINSIGHTS_INSTRUMENTATIONKEY"];

                config.LoggerFactory = loggerFactory
                                       .AddApplicationInsights(instrumentationKey, null)
                                       .AddConsole();

                config.UseTimers();
                config.UseDurableTask(new DurableTaskExtension
                {
                    HubName = "MyTaskHub",
                });
                var host = new JobHost(config);
                host.RunAndBlock();
            }
        }
Exemple #11
0
        private static void Main(string[] args)
        {
            var channel = new Microsoft.ApplicationInsights.Channel.InMemoryChannel();

            //https://docs.microsoft.com/ja-jp/azure/azure-monitor/app/asp-net-core
            //TODO: https://docs.microsoft.com/ja-jp/azure/azure-monitor/app/ilogger
            Console.WriteLine("Start App.");
            string basePath        = Directory.GetCurrentDirectory();
            string environmentName = Environment.GetEnvironmentVariable(Constants.Environment.AspNetCoreEnvironment);
            IConfigurationBuilder configurationBuilder = new ConfigurationBuilder()
                                                         .SetBasePath(basePath)
                                                         .AddJsonFile("appsettings.json", false, true) //optional: trueは存在していなくても構わない。
                                                         .AddJsonFile($"appsettings.{environmentName}.json", true, true)
                                                         .AddEnvironmentVariables();

            IConfigurationRoot config       = configurationBuilder.Build();
            string             keyVaultName = config[Constants.Configuration.KeyName.KeyVaultName];

            Console.WriteLine($"keyVaultName: {keyVaultName}");
            if (!string.IsNullOrEmpty(keyVaultName))
            {
                string keyVaultUrl = $"https://{keyVaultName}.vault.azure.net/";
                if (environmentName == Constants.Environment.Name.Development)
                {
                    config = configurationBuilder.AddAzureKeyVault(
                        keyVaultUrl,
                        config[Constants.Configuration.KeyName.AzureADApplicationId],
                        config[Constants.Configuration.KeyName.AzureADPassword]).Build();
                }
                else
                {
                    config = configurationBuilder.AddAzureKeyVault(keyVaultUrl).Build();
                }
            }

            string instrumentationKey = config["ApplicationInsights:InstrumentationKey"];

            IServiceCollection services = new ServiceCollection();

            services.Configure <TelemetryConfiguration>(conf =>
            {
                conf.TelemetryChannel = channel;
            });

            TelemetryClient telemetryClient = GetApplicationInsightsTelemetryClient(instrumentationKey);

            var     factory = new LoggerFactory();
            ILogger logger  = factory.CreateLogger("ConsoleAppWebJob");

            services.AddSingleton <IExecuteService, ExecuteService>()
            .AddSingleton <IConfiguration>(config)
            .AddSingleton(logger)
            .AddSingleton(telemetryClient);     // Flushしなくても出るので、telemetry clientを渡す必要はなし

            services.AddLogging(builder =>
            {
                builder.AddConfiguration(config.GetSection("Logging"));
                builder.AddFilter <ApplicationInsightsLoggerProvider>("ConsoleAppWebJob", LogLevel.Trace);
                builder.AddApplicationInsights(instrumentationKey);
                builder.AddConsole();
            });

            string keyVaultSqlDatabaseUserId   = config[Constants.Configuration.KeyVault.Secret.SqlDatabaseUserId];
            string keyVaultSqlDatabasePassword = config[Constants.Configuration.KeyVault.Secret.SqlDatabasePassword];
            string connectionString            = StartupConfig.ConnectionString.GetApplicationDbContextConnectionString(
                keyVaultSqlDatabaseUserId, keyVaultSqlDatabasePassword, config.GetConnectionString(Constants.ConnectionString.Db.ApplicationDbContextName)
                );

            //NOTE: BuildDependencyInjectionProvider Methodを呼ぶ前に書かないといけない
            services.AddDbContext <ApplicationDbContext>
            (
                options =>
                options.UseSqlServer(
                    connectionString,
                    b => b.MigrationsAssembly("Web.Api.Infrastructure")
                    )
            );

            IServiceProvider serviceProvider = BuildDependencyInjectionProvider(config, services);

            //serviceProvider.GetService<ILogger>().LogInformation("aaaa");

            //configure console logging
            factory.AddApplicationInsights(serviceProvider, LogLevel.Trace);
            //factory.AddConsole();

            ExecuteServiceAsync(serviceProvider).GetAwaiter().GetResult();
            channel.Flush();  //これがないとApplicationInsightsに出力されないみたい
            Console.WriteLine("End App.");
        }