chr*_*ark 8 asp.net json .net-core asp.net-core
关于如何制作生产设置,指南似乎不是很清楚(至少对我来说).他们只是谈论其中一些是如何工作的,但没有一步一步的指导.我做了以下事情:
尝试使用本指南更改Project中的环境变量
尽管Microsoft Doc明确声明要重用,但我收到此错误ASPNETCORE_ENVIRONMENT
.我无法保存这些设置
忽略此问题,看起来您可以手动创建这些条目,launchSettings.json
所以我有:
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:18549/",
"sslPort": 44319
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "api/v10Staff",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development",
"ASPNETCORE_ENVIRONMENT_T": "Test"
}
},
"IIS Express (Stage)": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "api/v10Staff",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Stage"
}
},
"ApplicationName": {
"commandName": "Project",
"launchBrowser": true,
"launchUrl": "http://localhost:60000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development",
"ASPNETCORE_ENVIRONMENT_T": "Test"
}
}
}
Run Code Online (Sandbox Code Playgroud)
将环境变量添加到服务器
我根据我去过的文档添加了环境变量Control Panel > System > Advanced system settings.
并添加了"新用户变量"."ASPNETCORE_ENVIRONMENT",价值"舞台"
配置件使用本指南
我的下一个问题是,没有人展示出有效的"转型" appsettings.Stage.json
.它是否完全在appsettings文件中使用Stage文件?我是否需要明确说明不同之处?这里说的是我的文件.
appsettings.Stage.json
{
"WebServiceAccount": {
"AccountName": "WebUser",
"AccountPass": "Wedontcarethatthisishere"
},
"ServerLocation": {
"ServerName": "http://appss.domain.com:8080",
"DBConnection": "server=svAppNameSTG;Max Pool Size=6000;database=ES;Integrated Security=SSPI;MultipleActiveResultSets=True"
}
}
Run Code Online (Sandbox Code Playgroud)
appsettings.json
{
"WebServiceAccount": {
"AccountName": "WebUser",
"AccountPass": "testpass1"
},
"ServerLocation": {
"ServerName": "http://appst.domain.com:8080",
"DBConnection": "server=svAppNameTST;Max Pool Size=6000;database=ES;Integrated Security=SSPI;MultipleActiveResultSets=True"
}
}
Run Code Online (Sandbox Code Playgroud)
我知道设置和配置文件已正确设置.因为我们的测试环境有效.当我将它部署到我们的Stage服务器时,我已经确认它仍然指向Test框.
如果有人有导游或者可以发现这有什么问题那就太棒了.
为了后人
这是Startup构建器
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables();
Configuration = builder.Build();
Run Code Online (Sandbox Code Playgroud)
首先,您似乎试图ASPNETCORE_ENVIRONMENT
在第一个屏幕截图中多次使用该变量.您不应该添加新变量,而是更改变量的值以反映您要使用的环境.所以测试阶段局部,简单的修改值的的ASPNETCORE_ENVIRONMENT
自变量Development
来Stage
.
我没有遇到ASPNETCORE_ENVIRONMENT_T
任何变量.如果这是你自己添加的东西,我怀疑它源于对上述内容的误解,并且可能有更好的方法来实现你想要的.必须强调的launchSettings.json
是,本地机器/开发环境中的所有内容都是如此.
ASPNETCORE_ENVIRONMENT
在Stage或Production服务器上设置变量将根据您的托管方式而有所不同.IIS?Azure的?AWS?泊坞窗?以下答案讨论了为IIS设置环境变量:
关于appsettings.json
,值合并.首先从基本文件中读取所有内容,然后从中读取的所有内容appsettings.{env.EnvironmentName}.json
将追加或覆盖基本文件中的内容.在您给出的示例中,可以省略WebServiceAccount/AccountName变量,appsettings.Stage.json
因为它与基础中的值相同.
归档时间: |
|
查看次数: |
4433 次 |
最近记录: |