// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseHttpsRedirection(); //custom pipeline start app.UseStaticFiles(); app.UseCors("CorsPolicy"); app.UseForwardedHeaders(new ForwardedHeadersOptions { ForwardedHeaders = ForwardedHeaders.All }); //custom pipeline end app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); }
其中,
UseForwardedHeaders() :将转发的 header 应用于当前请求上的匹配的字段。按照约定, HTTP 代理以众所周知的 HTTP header 从客户端转发消息。该中间件读取这些 header 并填充 HttpContext 上的相关字段。
UseStaticFiles() :对当前请求的路径启用静态文件服务,意思就是可以通过路径访问当前目录的文件。如果没有设置静态文件目录的路径,则默认使用 wwwroot 目录。
UseCors() :将 CORS 中间件添加到应用程序的请求管道中以允许跨域请求。
6. Startup 类中的其它代码ConfigureServices() 方法中,
AddControllers() :将控制器的服务添加到服务集合中。 AddMvc() 方法也可以将控制器添加到服务集合中,但它除了控制器外,还会将视图和页面添加到服务集合中。我们的项目是 Web API 项目,所以只需要控制器就可以。
Configure() 方法:
UseRouting() :将路由中间件添加到请求管道中。
UseAuthorization() :将授权中间件添加到请求管道中。
UseEndpoints() :为控制器的 Action 添加终结点并将终结点添加路由中。
7. 基于环境的设置在开发应用程序时,我们使用 开发 (development) 环境,当我们发布了应用程序之后就需要使用 生产 (production) 环境。开发环境和生产环境对应不同的 URLs、端口、连接字符串、密码等其它敏感信息。所以我们需要根据环境来区分配置,这在 .NET Core 中是很容易实现的。
当我们创建一个项目后,可以在项目的根目录中看到 appsettings.json 文件,这就我们主要的配置文件,点击文件前面的箭头可以看到一个 appsettings.Development.json 文件。如果在系统的文件资源管理器中打开项目目录,可以看到这是两个不同的文件,但是在 Visual Studio 中,这两个配置文件被关联在了一起。
appsettings.{EnvironmentSuffix}.json 是用于特定环境时的配置文件,可以覆盖 appsettings.json 文件中的配置。如果 appsettings.{EnvironmentSuffix}.json 文件中存在与 appsettings.json 文件同名的键值对,则会覆盖键值对的值。另外我们还可以自定义特定的环境,例如,对于生产环境,我们可以添加另一个文件: appsettings.Production.json :
appsettings.Production.json 文件中应该包含用于生产环境的配置项。
为了设置应用程序运行时的环境,我们需要设置 ASPNETCORE_ENVIRONMENT 环境变量。例如,如果想让应用程序运行在生产环境中,就需要在部署的机器上将上述环境变量的值修改为 Production 。在 Windows 环境中,可以通过输入命令: set ASPNETCORE_ENVIRONMENT=Production 来实现。在 Linux 环境中,可以通过输入命令: export ASPNET_CORE_ENVIRONMENT=Production 来实现。
ASP.NET Core 应用程序通过上述环境变量的值来决定使用哪个 appsettings.json 文件,例如在生产环境中,将会使用 appsettings.Production.json 文件。默认情况下 ASPNETCORE_ENVIRONMENT 变量的值是 Development ,打开 launchSettings.json 文件可以看到:
对于应用程序开发来说,日志记录是非常重要的一项功能,无论是在开发中、还是部署后的使用中,日志都会帮助我们发现、记录问题,我们可以根据日志来定位、复现并修复问题,所以尽可能的早的将日志服务添加到应用程序中是很有必要的,
到此这篇关于ASP.NET Core Web API 教程Project Configuration的文章就介绍到这了,更多相关ASP.NET Core Web API 教程内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章: