// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { loggerFactory.AddAzureWebAppDiagnostics(); loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Trace); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Home/Error"); } var pathBase = Configuration["PATH_BASE"]; if (!string.IsNullOrEmpty(pathBase)) { app.UsePathBase(pathBase); } #pragma warning disable CS1998 // Async method lacks 'await' operators and will run synchronously app.Map("/liveness", lapp => lapp.Run(async ctx => ctx.Response.StatusCode = 200)); #pragma warning restore CS1998 // Async method lacks 'await' operators and will run synchronously app.UseStaticFiles(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { loggerFactory.AddAzureWebAppDiagnostics(); loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Trace); var pathBase = Configuration["PATH_BASE"]; if (!string.IsNullOrEmpty(pathBase)) { app.UsePathBase(pathBase); } app.UseStaticFiles(); app.UseCors("CorsPolicy"); ConfigureAuth(app); app.UseMvcWithDefaultRoute(); app.UseSwagger() .UseSwaggerUI(c => { c.SwaggerEndpoint($"{ (!string.IsNullOrEmpty(pathBase) ? pathBase : string.Empty) }/swagger/v1/swagger.json", "My API V1"); c.ConfigureOAuth2("basketswaggerui", "", "", "Basket Swagger UI"); }); ConfigureEventBus(app); }
/// <summary> /// Adds an ApplicationInsights logger that is enabled as defined by the filter function. /// </summary> /// <param name="factory"></param> /// <param name="filter"></param> /// <param name="serviceProvider">The instance of <see cref="IServiceProvider"/> to use for service resolution.</param> public static ILoggerFactory AddApplicationInsights( this ILoggerFactory factory, IServiceProvider serviceProvider, Func <string, LogLevel, bool> filter) { return(factory.AddApplicationInsights(serviceProvider, filter, null)); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { loggerFactory.AddSerilog(); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseForwardedHeaders(new ForwardedHeadersOptions { ForwardedHeaders = Microsoft.AspNetCore.HttpOverrides.ForwardedHeaders.XForwardedFor | Microsoft.AspNetCore.HttpOverrides.ForwardedHeaders.XForwardedProto }); app.UseCors( options => options.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader() ); app.UseAuthentication(); loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Warning); app.UseMvc(); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IServiceProvider serviceProvider) { // Add Application Insights logger loggerFactory.AddApplicationInsights(serviceProvider, LogLevel.Information); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); app.UseBrowserLink(); } else { app.UseExceptionHandler("/Error"); } app.UseStaticFiles(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller}/{action=Index}/{id?}"); }); }
public static void AddAppInsights(this ILoggerFactory loggerFactory, IServiceProvider serviceProvider) { var configuration = serviceProvider.GetService(typeof(IConfiguration)) as IConfiguration; var logLevel = configuration["Logging:LogLevel:Default"] ?? "Warning"; loggerFactory.AddApplicationInsights(serviceProvider, (LogLevel)Enum.Parse(typeof(LogLevel), logLevel, true)); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { loggerFactory.AddAzureWebAppDiagnostics(); loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Trace); var pathBase = Configuration["PATH_BASE"]; if (!string.IsNullOrEmpty(pathBase)) { app.UsePathBase(pathBase); } #pragma warning disable CS1998 // Async method lacks 'await' operators and will run synchronously app.Map("/liveness", lapp => lapp.Run(async ctx => ctx.Response.StatusCode = 200)); #pragma warning restore CS1998 // Async method lacks 'await' operators and will run synchronously app.UseStaticFiles(); app.UseCors("CorsPolicy"); ConfigureAuth(app); app.UseMvcWithDefaultRoute(); app.UseSwagger() .UseSwaggerUI(c => { c.SwaggerEndpoint($"{ (!string.IsNullOrEmpty(pathBase) ? pathBase : string.Empty) }/swagger/v1/swagger.json", "Basket.API V1"); c.ConfigureOAuth2("basketswaggerui", "", "", "Basket Swagger UI"); }); ConfigureEventBus(app); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Home/Error"); // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. app.UseHsts(); } app.Use(async(context, next) => { context.Response.Headers.Add("X-Content-Type-Options", "nosniff"); context.Response.Headers.Add("X-Xss-Protection", "1"); await next(); }); // Enable app insights logging loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Warning); app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseCookiePolicy(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { var appInsightsLogLevel = _configuration.GetValue <LogLevel>("Logging:Application Insights:LogLevel:Default"); loggerFactory.AddApplicationInsights(app.ApplicationServices, appInsightsLogLevel); app.UseCorrelationIdHeader(); app.UseMiddleware <RequestLoggingMiddlewareExtended>(); app.UseAuthentication(); app.UseCors("default"); app.UseMvc(); app.UseSwagger(c => { c.PreSerializeFilters.Add((swaggerDoc, httpReq) => { if (_settings.Environment != "Development") { swaggerDoc.BasePath = "/sample"; //This should be the path to the micro-service on Service Fabric Cluster configured on Traefik } }); }); app.UseSwaggerUI(c => { c.SwaggerEndpoint("../swagger/v1/swagger.json", "Cloud Fabric Sample API V1"); }); JsonConvert.DefaultSettings = () => new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }; }
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Information); app.UseHttpsRedirection(); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseStaticFiles(); app.UseCookiePolicy(); app.UseIdentityServer(); app.UseRequestLocalization(options => { var supportedCultures = new List <CultureInfo> { new CultureInfo("en-US"), new CultureInfo("en"), new CultureInfo("sv-SE"), new CultureInfo("sv") }; options.DefaultRequestCulture = new RequestCulture("en-US"); options.SupportedCultures = supportedCultures; options.SupportedUICultures = supportedCultures; }); app.UseMvcWithDefaultRoute(); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { loggerFactory.AddAzureWebAppDiagnostics(); loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Trace); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); app.UseBrowserLink(); } else { app.UseExceptionHandler("/Error"); } app.UseStaticFiles(); app.UseCors("CorsPolicy"); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller}/{action=Index}/{id?}"); }); ConfigureEventBus(app); }
/// <summary> /// Configures the specified application. /// </summary> /// <param name="app">The application.</param> /// <param name="env">The env.</param> /// <param name="loggerFactory">The logger factory.</param> public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { if (!env.IsProduction()) { app.UseDeveloperExceptionPage(); app.UseBrowserLink(); } loggerFactory.AddConsole(Configuration.GetSection("Logging")); loggerFactory.AddDebug(); loggerFactory.AddEventSourceLogger(); loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Information); if (!env.IsDevelopment()) { app.UseSwagger(); app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "V1 Docs"); }); } app.UseMiddleware <ProblemExceptionMiddleware>(); app.UseResponseCompression(); app.UseAuthentication(); app.UseMvc(); }
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { loggerFactory.AddConsole(Configuration.GetSection("Logging")); loggerFactory.AddDebug(); loggerFactory.AddAzureWebAppDiagnostics(); loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Trace); var pathBase = Configuration["PATH_BASE"]; if (!string.IsNullOrEmpty(pathBase)) { loggerFactory.CreateLogger("init").LogDebug($"Using PATH BASE '{pathBase}'"); app.UsePathBase(pathBase); } app.UseCors("CorsPolicy"); ConfigureAuth(app); app.UseMvcWithDefaultRoute(); app.UseSwagger() .UseSwaggerUI(c => { c.SwaggerEndpoint($"{ (!string.IsNullOrEmpty(pathBase) ? pathBase : string.Empty) }/swagger/v1/swagger.json", "My API V1"); c.ConfigureOAuth2("orderingswaggerui", "", "", "Ordering Swagger UI"); }); ConfigureEventBus(app); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { app.UseSwagger(); // Enable middleware to serve swagger-ui (HTML, JS, CSS, etc.), // specifying the Swagger JSON endpoint. app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1"); c.RoutePrefix = string.Empty; }); app.UseCors("Todos"); app.UseMvc(); loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Trace); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseSwagger(); app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "OxiServi API"); }); app.UseHangfireServer(); app.UseHangfireDashboard(); var job = new JobModule(); job.Job(_configuration["API:connectionString"]); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, PaymentDbContext dbContext) { if (env.IsDevelopment()) { loggerFactory.AddConsole(Configuration.GetSection("Logging")); loggerFactory.AddDebug(); loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Trace); app.UseDeveloperExceptionPage(); } app.UseAuthentication(); app.UseCors(builder => builder.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader()); app.UseSwagger(); app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "MyAPI V1"); }); app.UseMvc(); dbContext.Database.EnsureCreated(); app.UseStaticFiles(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Payments}/{action=Index}"); }); }
public void Configure( IApplicationBuilder app, IHostingEnvironment env, IServiceProvider prov, ILoggerFactory loggerFactory) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); app.UseBrowserLink(); } Logs.Configure(loggerFactory); //App insight do not that by itself... loggerFactory.AddApplicationInsights(prov, LogLevel.Information); app.UsePayServer(); app.UseStaticFiles(); app.UseAuthentication(); app.UseHangfireServer(); app.UseHangfireDashboard("/hangfire", new DashboardOptions() { Authorization = new[] { new NeedRole(Roles.ServerAdmin) } }); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); }
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { loggerFactory.AddConsole(Configuration.GetSection("Logging")); loggerFactory.AddDebug(); loggerFactory.AddAzureWebAppDiagnostics(); loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Trace); var pathBase = Configuration["PATH_BASE"]; if (!string.IsNullOrEmpty(pathBase)) { loggerFactory.CreateLogger("init").LogDebug($"Using PATH BASE '{pathBase}'"); app.UsePathBase(pathBase); } #pragma warning disable CS1998 // Async method lacks 'await' operators and will run synchronously app.Map("/liveness", lapp => lapp.Run(async ctx => ctx.Response.StatusCode = 200)); #pragma warning restore CS1998 // Async method lacks 'await' operators and will run synchronously app.UseCors("CorsPolicy"); ConfigureAuth(app); app.UseMvcWithDefaultRoute(); app.UseSwagger() .UseSwaggerUI(c => { c.SwaggerEndpoint($"{ (!string.IsNullOrEmpty(pathBase) ? pathBase : string.Empty) }/swagger/v1/swagger.json", "Ordering.API V1"); c.OAuthClientId("orderingswaggerui"); c.OAuthAppName("Ordering Swagger UI"); }); ConfigureEventBus(app); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { loggerFactory.AddConsole(Configuration.GetSection("Logging")); loggerFactory.AddDebug(); loggerFactory.AddAzureWebAppDiagnostics(); loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Trace); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); app.UseDatabaseErrorPage(); } else { app.UseExceptionHandler("/Home/Error"); } var pathBase = Configuration["PATH_BASE"]; if (!string.IsNullOrEmpty(pathBase)) { loggerFactory.CreateLogger("init").LogDebug($"Using PATH BASE '{pathBase}'"); app.UsePathBase(pathBase); } #pragma warning disable CS1998 // Async method lacks 'await' operators and will run synchronously app.Map("/liveness", lapp => lapp.Run(async ctx => ctx.Response.StatusCode = 200)); #pragma warning restore CS1998 // Async method lacks 'await' operators and will run synchronously app.UseStaticFiles(); // Make work identity server redirections in Edge and lastest versions of browers. WARN: Not valid in a production environment. app.Use(async(context, next) => { context.Response.Headers.Add("Content-Security-Policy", "script-src 'unsafe-inline'"); await next(); }); var forwardOptions = new ForwardedHeadersOptions { ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto, RequireHeaderSymmetry = false }; forwardOptions.KnownNetworks.Clear(); forwardOptions.KnownProxies.Clear(); app.UseForwardedHeaders(forwardOptions); // Adds IdentityServer app.UseIdentityServer(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); app.UseCloudFoundryActuators(); app.UseDiscoveryClient(); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Information); loggerFactory.AddEventSourceLogger(); // ETW on Windows, dev/null on other platforms loggerFactory.AddConsole(); loggerFactory.AddDebug(); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); // Do not expose Swagger interface in production app.UseSwaggerUi3(typeof(Startup).GetTypeInfo().Assembly, settings => { settings.DocumentPath = "/swagger/v2/swagger.json"; settings.EnableTryItOut = true; settings.DocExpansion = "list"; settings.PostProcess = document => { document.BasePath = "/"; }; settings.GeneratorSettings.Description = "Building Web APIs Workshop Demo Web API"; settings.GeneratorSettings.Title = "Genealogy API"; settings.GeneratorSettings.Version = "2.0"; settings.GeneratorSettings.OperationProcessors.Add( new ApiVersionProcessor() { IncludedVersions = new[] { "2.0" } } ); }); app.UseSwaggerUi3(typeof(Startup).GetTypeInfo().Assembly, settings => { settings.DocumentPath = "/swagger/v1/swagger.json"; settings.EnableTryItOut = true; settings.DocExpansion = "list"; settings.PostProcess = document => { document.BasePath = "/"; }; settings.GeneratorSettings.Description = "Building Web APIs Workshop Demo Web API"; settings.GeneratorSettings.Title = "Genealogy API"; settings.GeneratorSettings.Version = "1.0"; settings.GeneratorSettings.OperationProcessors.Add( new ApiVersionProcessor() { IncludedVersions = new[] { "1.0" } } ); }); } else { app.UseHsts(); app.UseHttpsRedirection(); } app.UseMvcWithDefaultRoute(); }
public static ILoggerFactory AddApplicationInsights( this ILoggerFactory factory, IServiceProvider serviceProvider, LogLevel minLevel) { factory.AddApplicationInsights(serviceProvider, (category, logLevel) => logLevel >= minLevel); return(factory); }
/// <summary> /// Adds an ApplicationInsights logger that is enabled for <see cref="LogLevel"/>s of minLevel or higher. /// </summary> /// <param name="factory"></param> /// <param name="serviceProvider">The instance of <see cref="IServiceProvider"/> to use for service resolution.</param> /// <param name="minLevel">The minimum <see cref="LogLevel"/> to be logged</param> public static ILoggerFactory AddApplicationInsights( this ILoggerFactory factory, Func <TelemetryClient> telemetryClientFactory, LogLevel minLevel) { factory.AddApplicationInsights(telemetryClientFactory, (category, logLevel) => logLevel >= minLevel); return(factory); }
public static void UseMonitoring(this ILoggerFactory loggerFactory, IConfiguration configuration) { loggerFactory.AddSerilog(); loggerFactory.AddApplicationInsights( configuration.GetSection("Logging"), configuration.GetSection("ApplicationInsights") ); }
public void ConfigureServices(IServiceCollection services) // called by the WebHost runtime { services.AddCors(options => { options.AddPolicy("CorsPolicy", builder => builder.AllowAnyOrigin() .WithMethods("Get", "Post", "Put") .AllowAnyHeader() .AllowCredentials()); }); services.AddAuthentication(options => // can use free Auth0.com account for API Endpoint (AUTH) security; authentication/bearer token { // or default: anonymous calls with attributes in the controller [Anonymous] options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; }).AddJwtBearer(options => { options.Authority = $"https://{_configuration["Auth0:Domain"]}/"; options.Audience = _configuration["Auth0:ApiIdentifier"]; } ); services.AddApplicationInsightsTelemetry(_configuration); // Azure Application Insights statistical data turned on (telemetry) IServiceProvider serviceProvider = services.BuildServiceProvider(); _loggerFactory.AddApplicationInsights(serviceProvider, LogLevel.Information); // ASPNetCore logger instance causes everyting Information (and above) to be sent to AppInsights services.AddMvc(options => { options.Filters.Add(new AllowAnonymousFilter(_logger)); // shim: implented for [Anonymous] attribute on REST method (no security for that REST call) }).AddJsonOptions(options => { options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); options.SerializerSettings.DefaultValueHandling = DefaultValueHandling.Include; options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore; }); services.AddSwaggerGen(options => // swagger - autodocument setup { options.DescribeAllEnumsAsStrings(); options.SwaggerDoc("v1", new Swashbuckle.AspNetCore.Swagger.Info { Title = "RepositoryNook Service", Version = "v1", Description = "API for service called 'RepositoryNook' stores in MongoDB Atlas (hosted)", TermsOfService = "(C) 2018 Cloud Computing Associates (CCA) All Rights Reserved." }); }); services.AddTransient <IResponse, Response>(); // leverage Dotnet core dependency injection (DI) services.AddTransient <HttpClient>(); services.AddTransient <IJsonConfiguration, JsonConfiguration>(); services.AddTransient <IRepositoryService, RepositoryService>(); services.AddTransient <IAdminService, AdminService>(); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { loggerFactory.AddConsole(Configuration.GetSection("Logging")); loggerFactory.AddDebug(); loggerFactory.AddAzureWebAppDiagnostics(); loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Trace); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); app.UseDatabaseErrorPage(); } else { app.UseExceptionHandler("/Home/Error"); } var pathBase = Configuration["PATH_BASE"]; if (!string.IsNullOrEmpty(pathBase)) { loggerFactory.CreateLogger("init").LogDebug($"Using PATH BASE '{pathBase}'"); app.UsePathBase(pathBase); } app.UseHealthChecks("/hc", new HealthCheckOptions() { Predicate = _ => true, ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse }); app.UseHealthChecks("/liveness", new HealthCheckOptions { Predicate = r => r.Name.Contains("self") }); app.UseStaticFiles(); // Make work identity server redirections in Edge and lastest versions of browers. WARN: Not valid in a production environment. app.Use(async(context, next) => { context.Response.Headers.Add("Content-Security-Policy", "script-src 'unsafe-inline'"); await next(); }); app.UseForwardedHeaders(); // Adds IdentityServer app.UseIdentityServer(); app.UseHttpsRedirection(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IServiceProvider serviceProvider, IApplicationConfiguration applicationConfiguration) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Error"); app.UseHsts(); } loggerFactory.AddApplicationInsights(serviceProvider, LogLevel.Information); TelemetryConfiguration.Active.TelemetryInitializers.Add(new VersionTelemetry()); // Retreive application specific config from Azure AD applicationConfiguration.InitializeAsync().Wait(); JsonSerializerSettings jsonSettingsProvider() { var settings = new JsonSerializerSettings { ContractResolver = new CoreContractResolver(app.ApplicationServices), }; return(settings); } JsonConvert.DefaultSettings = jsonSettingsProvider; // This is here because we need to P/Invoke into clr.dll for _AxlPublicKeyBlobToPublicKeyToken var is64bit = IntPtr.Size == 8; var windir = Environment.GetEnvironmentVariable("windir"); var fxDir = is64bit ? "Framework64" : "Framework"; var netfxDir = $@"{windir}\Microsoft.NET\{fxDir}\v4.0.30319"; AddEnvironmentPaths(new[] { netfxDir }); app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseSession(); app.UseAuthentication(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); }
public static void AddLogging(IHostingEnvironment env, ILoggerFactory loggerFactory, IServiceProvider provider, IConfigurationRoot configuration) { loggerFactory.AddConsole(configuration.GetSection("Logging")); loggerFactory.AddDebug(); if (!env.IsDevelopment()) { loggerFactory.AddApplicationInsights(provider); } }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear(); loggerFactory.AddConsole(Configuration.GetSection("Logging")); loggerFactory.AddDebug(); loggerFactory.AddAzureWebAppDiagnostics(); loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Trace); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); app.UseBrowserLink(); } else { app.UseExceptionHandler("/Error"); } var pathBase = Configuration["PATH_BASE"]; if (!string.IsNullOrEmpty(pathBase)) { loggerFactory.CreateLogger("init").LogDebug($"Using PATH BASE '{pathBase}'"); app.UsePathBase(pathBase); } #pragma warning disable CS1998 // Async method lacks 'await' operators and will run synchronously app.Map("/liveness", lapp => lapp.Run(async ctx => ctx.Response.StatusCode = 200)); #pragma warning restore CS1998 // Async method lacks 'await' operators and will run synchronously app.UseSession(); app.UseStaticFiles(); if (Configuration.GetValue <bool>("UseLoadTest")) { app.UseMiddleware <ByPassAuthMiddleware>(); } app.UseAuthentication(); var log = loggerFactory.CreateLogger("identity"); WebContextSeed.Seed(app, env, loggerFactory); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Catalog}/{action=Index}/{id?}"); routes.MapRoute( name: "defaultError", template: "{controller=Error}/{action=Error}"); }); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IAntiforgery antiforgery) { loggerFactory.AddAzureWebAppDiagnostics(); loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Trace); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } // Configure XSRF middleware, This pattern is for SPA style applications where XSRF token is added on Index page // load and passed back token on every subsequent async request // app.Use(async (context, next) => // { // if (string.Equals(context.Request.Path.Value, "/", StringComparison.OrdinalIgnoreCase)) // { // var tokens = antiforgery.GetAndStoreTokens(context); // context.Response.Cookies.Append("XSRF-TOKEN", tokens.RequestToken, new CookieOptions() { HttpOnly = false }); // } // await next.Invoke(); // }); //Seed Data WebContextSeed.Seed(app, env, loggerFactory); var pathBase = Configuration["PATH_BASE"]; if (!string.IsNullOrEmpty(pathBase)) { loggerFactory.CreateLogger("init").LogDebug($"Using PATH BASE '{pathBase}'"); app.UsePathBase(pathBase); } #pragma warning disable CS1998 // Async method lacks 'await' operators and will run synchronously app.Map("/liveness", lapp => lapp.Run(async ctx => ctx.Response.StatusCode = 200)); #pragma warning restore CS1998 // Async method lacks 'await' operators and will run synchronously app.Use(async(context, next) => { await next(); // If there's no available file and the request doesn't contain an extension, we're probably trying to access a page. // Rewrite request to use app root if (context.Response.StatusCode == 404 && !Path.HasExtension(context.Request.Path.Value) && !context.Request.Path.Value.StartsWith("/api")) { context.Request.Path = "/index.html"; context.Response.StatusCode = 200; // Make sure we update the status code, otherwise it returns 404 await next(); } }); app.UseDefaultFiles(); app.UseStaticFiles(); app.UseMvcWithDefaultRoute(); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IServiceProvider provider) { loggerFactory.AddApplicationInsights(provider, LogLevel.Information); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseMvc(); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear(); loggerFactory.AddConsole(Configuration.GetSection("Logging")); loggerFactory.AddDebug(); loggerFactory.AddAzureWebAppDiagnostics(); loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Trace); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); app.UseBrowserLink(); } else { app.UseExceptionHandler("/Error"); } var pathBase = Configuration["PATH_BASE"]; if (!string.IsNullOrEmpty(pathBase)) { loggerFactory.CreateLogger("init").LogDebug($"Using PATH BASE '{pathBase}'"); app.UsePathBase(pathBase); } app.UseSession(); app.UseStaticFiles(); app.UseKendo(env); if (Configuration.GetValue <bool>("UseLoadTest")) { app.UseMiddleware <ByPassAuthMiddleware>(); } app.UseAuthentication(); var log = loggerFactory.CreateLogger("identity"); WebContextSeed.Seed(app, env, loggerFactory); app.UseMvc(routes => { routes.MapRoute( name: "areaRoute", template: "{area:exists}/{controller}/{action=Index}/{id?}"); routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); routes.MapRoute( name: "defaultError", template: "{controller=Error}/{action=Error}"); }); }