本示例说明如何在一个Startup类中使用不同的依赖注入配置和单独的中间件配置多个环境。
除了中和方法可以使用,并有环境相关的配置。public void Configure(IApplicationBuilder app)public void ConfigureServices(IServiceCollection services)Configure{EnvironmentName}Configure{EnvironmentName}Services
使用这种模式可以避免if/else在一个方法/Startup类中增加太多逻辑,并保持其清洁和分离。
public class Startup { public void ConfigureServices(IServiceCollection services) { } public void ConfigureStaggingServices(IServiceCollection services) { } public void ConfigureProductionServices(IServiceCollection services) { } public void Configure(IApplicationBuilder app) { } public void ConfigureStagging(IApplicationBuilder app) { } public void ConfigureProduction(IApplicationBuilder app) { } }
当找不到Configure{Environmentname}或时Configure{Environmentname}Services,它将分别回落到Configure或ConfigureServices。
相同的语义也适用于Startup该类。StartupProduction将在ASPNETCORE_ENVIRONMENT变量设置为时使用,并在变量为或时Production回退StartupStaggingDevelopment
一个完整的例子:
public class Startup { public Startup(IHostingEnvironment hostEnv) { // 设置配置源。 var builder = new ConfigurationBuilder() .SetBasePath(hostEnv.ContentRootPath) .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) .AddJsonFile($"appsettings.{hostEnv.EnvironmentName}.json", optional: true, reloadOnChange: true); if (hostEnv.IsDevelopment()) { // 这将使遥测数据更快地通过Application Insights管道推送,从而使您可以立即查看结果。 builder.AddApplicationInsightsSettings(developerMode: true); } builder.AddEnvironmentVariables(); Configuration = builder.Build(); } public IConfigurationRoot Configuration { get; set; } //运行时将调用此方法。使用此方法向容器添加服务 public static void RegisterCommonServices(IServiceCollection services) { services.AddScoped<ICommonService, CommonService>(); services.AddScoped<ICommonRepository, CommonRepository>(); } public void ConfigureServices(IServiceCollection services) { RegisterCommonServices(services); services.AddOptions(); services.AddMvc(); } public void ConfigureDevelopment(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { loggerFactory.AddConsole(Configuration.GetSection("Logging")); loggerFactory.AddDebug(); app.UseBrowserLink(); app.UseDeveloperExceptionPage(); app.UseApplicationInsightsRequestTelemetry(); app.UseApplicationInsightsExceptionTelemetry(); app.UseStaticFiles(); app.UseMvc(); } // 此配置中没有控制台记录器和调试工具 public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { loggerFactory.AddDebug(); app.UseApplicationInsightsRequestTelemetry(); app.UseApplicationInsightsExceptionTelemetry(); app.UseStaticFiles(); app.UseMvc(); } }
本文向大家介绍ASP.NET Core根据环境变量支持多个 appsettings.json配置文件,包括了ASP.NET Core根据环境变量支持多个 appsettings.json配置文件的使用技巧和注意事项,需要的朋友参考一下 一、背景 在项目开发的过程当中,开发环境与生产环境的配置肯定是不一样的。拿个最简单的例子来说,比如连接字符串这种东西,开发环境肯定不能连生产数据库。在之前的话,这种
本文向大家介绍ASP.NET Core 配置和使用环境变量的实现,包括了ASP.NET Core 配置和使用环境变量的实现的使用技巧和注意事项,需要的朋友参考一下 前言 通常在应用程序开发到正式上线,在这个过程中我们会分为多个阶段,通常会有 开发、测试、以及正式环境等。每个环境的参数配置我们会使用不同的参数,因此呢,在ASP.NET Core中就提供了相关的环境API,方便我们更好的去做这些事情。
本文向大家介绍ASP.NET Core中的配置详解,包括了ASP.NET Core中的配置详解的使用技巧和注意事项,需要的朋友参考一下 ASP.NET Core 提供了一个灵活可扩展,基于键值的配置系统. 但是配置系统独立于ASP.NET Core是Microsoft.Extensions 类库的部分. 它可以用于任何类型的应用程序 1、以键-值对的形式读取配置 appsettings.json
本文向大家介绍ASP.NET Core项目配置教程(6),包括了ASP.NET Core项目配置教程(6)的使用技巧和注意事项,需要的朋友参考一下 在这一章,我们将讨论 ASP.NET Core项目的相关的配置。在解决方案资源管理器中,您将看到 Startup.cs 文件。如果你有以前版本的 ASP.NET的工作经验,你可能希望看到一个 global.asax 文件,您可以在其中编写代码,它是一个
本文向大家介绍ASP.NET Core配置教程之读取配置信息,包括了ASP.NET Core配置教程之读取配置信息的使用技巧和注意事项,需要的朋友参考一下 提到“配置”二字,我想绝大部分.NET开发人员脑海中会立马浮现出两个特殊文件的身影,那就是我们再熟悉不过的app.config和web.config,多年以来我们已经习惯了将结构化的配置信息定义在这两个文件之中。到了.NET Core的时候,很
本文向大家介绍asp.net-core红est。配置监听地址,包括了asp.net-core红est。配置监听地址的使用技巧和注意事项,需要的朋友参考一下 示例 使用Kestrel,您可以使用以下方法指定端口: 定义ASPNETCORE_URLS环境变量。 视窗 OS X 通过命令行传递--server.urls参数 使用UseUrls()方法 server.urls在配置源中定义设置。 host