调用AddDatabaseDeveloperPageExceptionFilter()前如何判断处于开发环境?
如何在开发环境中仅调用AddDatabaseDeveloperPageExceptionFilter()
根据官方文档,AddDatabaseDeveloperPageExceptionFilter()仅应在开发环境中调用,但常规的环境判断方式app.Environment.IsDevelopment()需要在app = builder.Build()之后才能使用,而该服务必须在构建应用前添加到容器中,这就产生了矛盾。
解决方法
你可以直接通过builder.Environment获取环境状态,无需等待应用构建完成:
if (builder.Environment.IsDevelopment()) { builder.Services.AddDatabaseDeveloperPageExceptionFilter(); }
模板代码的合理性说明
Blazor或ASP.NET Core项目模板中直接调用builder.Services.AddDatabaseDeveloperPageExceptionFilter()而不做环境判断,是因为该方法内部已经内置了环境校验逻辑——它只会在开发环境下实际注册相关服务,生产环境中不会产生任何有效注册,因此模板代码是安全的。
内容的提问来源于stack exchange,提问作者Tim Murphy
相关产品推荐
相关产品推荐

