asp.net-core – 如何在部署asp.net核心应用程序时处理环境差异?
|
有没有办法在部署ASP.NET Core应用程序时更改环境设置(比如使用调试/发布版本进行配置文件转换)? 在.NET Core应用程序中维护多个环境设置的最佳方法是什么(类似于< appSettings file =“local.config”>用于本地,登台和生产)? 解决方法中央配置文件是appsettings.json,您可以拥有多个文件,如appsettings.Production.json等,它们将被加载并覆盖appsettings.json中的设置.例如 // Set up configuration sources.
var builder = new ConfigurationBuilder()
.SetBasePath(hostEnv.ContentRootPath)
.AddJsonFile("appsettings.json",optional: false,reloadOnChange: true)
.AddJsonFile($"appsettings.{hostEnv.EnvironmentName}.json",optional: true,reloadOnChange: true)
.AddEnvironmentVariables();
实现这一目标所需要的只是用于设置环境类型的环境变量(参见文档here). 如果将AddEnvironmentVariables()添加到配置构建器,则还可以使用覆盖的环境变量.所以如果你有一个appsettings.json {
"Data" {
"Default" {
"ConnectionString" : "..."
}
}
}
并且想要通过环境变量覆盖它,你需要设置一个名为“Data:Default:ConnectionString”的环境变量,它的值将覆盖appsettings.config和appsettings.Production.config中的设置(假设你的.AddEnvironmentalVariables()在.AddJsonFile() – 使用匹配键获胜的最后一次注册)之后调用环境变量中的值. 您可以在官方文档here中找到更多信息. 更新 由于在评论中有些人认为这是设置环境的唯一方法,因此有许多方法可以设置环境变量(大部分都在Use multiple environments in ASP.NET Core中记录),所有这些最终都归结为环境变量,只是在不同的范围内: >环境变量(全局,Windows cmd.exe在powershell上设置ASPNETCORE_ENVIRONMENT =开发或$Env:ASPNETCORE_ENVIRONMENT =“开发”,导出ASPNETCORE_ENVIRONMENT = Linux上的开发) web:
environment:
- ASPNETCORE_ENVIRONMENT=Debugging
> Docker容器通过命令行docker运行-e ASPNETCORE_ENVIRONMENT =调试 <aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" forwardWindowsAuthToken="false" stdoutLogEnabled="true" >
<environmentVariables>
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
</environmentVariables>
</aspNetCore>
>在IIS上按AppPool设置(参见here) 它们都在特定范围内更改/设置环境变量(全局,本地到容器,在应用程序池内,每次执行等).选择一个适合您需求的产品. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- .net – Structuremap – 多个接口实现
- asp.net – IIS工作进程使用大量的内存?
- asp.net-mvc-4 – 如何在Kendo Grid的每一行中添加自定义按
- asp.net-mvc-routing – @ Url.Action获取?附加长度= 2
- asp.net-mvc – 洋葱建筑 – 存储库与服务?
- asp.net-mvc-3 – ASP.NET MVC语言更改链接
- asp.net-mvc – 我可以免费在ASP.NET MVC上开发吗?
- asp.net – 实体框架CTP5,代码优先.可选的导航属性
- asp.net – 返回按钮刷新页面
- asp.net编程实现删除文件夹及文件夹下文件的方法
- asp.net – 如何将会话超时设置超过20分钟.
- asp.net-web-api – WebApi2属性路由404
- asp.net-mvc-3 – 在MVC3中设置所选选项
- asp.net-mvc – 我应该在ASP.NET MVC中使用Anti-
- asp.net核心,角度2,PrimeNG
- asp.net-mvc – 必需属性“pageBaseType”未找到
- asp.net – html文本框的最大长度是多少?
- asp.net-mvc – 具有IE条件注释的MVC4捆绑/缩小
- asp.net-mvc – 无法使用IIS Express在Windows 1
- asp.net – 有浏览器相当于IE的ClearAuthenticat
