ASP.NET Core 8 的运行环境 Environment

开发流程一般有3个阶段:

  • 开发 Development
  • 测试 Stage
  • 正式 Production

运行时环境变量可以用于根据不同的开发阶段运行不同的逻辑,比如在开发阶段的某些功能或保密信息不暴露在正式上线的代码中。

在Visual Stduio创建的模板代码中是否为开发环境Environment,然后使用异常页面:

csharp 复制代码
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddRazorPages();
var app = builder.Build();
// 判断是否为开发环境Environment
if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Error");
    app.UseHsts();
}
app.Run();

可以在 Properties\launchSettings.json 文件中设置 ASPNETCORE_ENVIRONMENT 变量来标识。

  • launchSettings.json只有在开发阶段才被使用。
  • 不会被部署到产品代码中。
  • 可以包含Profiles
  • 可以在Visual Studio的调试窗口中设置ASPNETCORE_ENVIRONMENT 的值来覆盖这里。

也可以通过host对象的属性来设置:

csharp 复制代码
app.Environment.EnvironmentName = "default";

还可以通过builder来设置:

csharp 复制代码
var builder = WebApplication.CreateBuilder(new WebApplicationOptions
{
    EnvironmentName = Environments.Staging
}); 

Production 环境

在Production运行环境中,应该保证最安全,性能最好,最健壮的代码。以及:

  • 启用Caching缓存。
  • 客户端的资源应该被打包压缩放在CDN上。
  • 禁用调试页面
  • 启用友好页面。
  • 启用日志系统。
相关推荐
Java天梯之路4 小时前
Spring Boot 钩子全集实战(七):BeanFactoryPostProcessor详解
java·spring boot·后端
wr2005145 小时前
第二次作业,渗透
java·后端·spring
短剑重铸之日5 小时前
《SpringCloud实用版》生产部署:Docker + Kubernetes + GraalVM 原生镜像 完整方案
后端·spring cloud·docker·kubernetes·graalvm
爬山算法6 小时前
Hibernate(67)如何在云环境中使用Hibernate?
java·后端·hibernate
女王大人万岁6 小时前
Go标准库 io与os库详解
服务器·开发语言·后端·golang
露天赏雪6 小时前
Java 高并发编程实战:从线程池到分布式锁,解决生产环境并发问题
java·开发语言·spring boot·分布式·后端·mysql
云草桑7 小时前
.net AI开发04 第八章 引入RAG知识库与文档管理核心能力及事件总线
数据库·人工智能·microsoft·c#·asp.net·.net·rag
短剑重铸之日7 小时前
《SpringCloud实用版》 Seata 分布式事务实战:AT / TCC / Saga /XA
后端·spring·spring cloud·seata·分布式事务
FAFU_kyp7 小时前
RISC0_ZERO项目在macOs上生成链上证明避坑
开发语言·后端·学习·macos·rust
qq_12498707538 小时前
基于springboot的会议室预订系统设计与实现(源码+论文+部署+安装)
java·vue.js·spring boot·后端·信息可视化·毕业设计·计算机毕业设计