Gin*_*ano 8 asp.net .net-core asp.net-core asp.net-core-2.0
我创建了几个这样的.net核心2网络应用程序,直到这一个没有问题.
在IISExpress下运行本地它运行正常但是当我将调试版本部署到服务器上的IIS文件夹时,我遇到了问题.
当我读取配置条目时,找不到:
_config["MySettings:MyName"];
Run Code Online (Sandbox Code Playgroud)
文件内容:
appsettings.Development.json
{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Trace",
"System": "Information",
"Microsoft": "Information"
}
},
"MySettings": {
"MyName": "JohnDoe"
}
}
Run Code Online (Sandbox Code Playgroud)
appsettings.json
{
"Logging": {
"IncludeScopes": false,
"Debug": {
"LogLevel": {
"Default": "Trace"
}
},
"Console": {
"LogLevel": {
"Default": "Warning"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
launchSetting.json
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:60668/",
"sslPort": 0
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "api/security",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"WebApi.ViewerSecurity": {
"commandName": "Project",
"launchBrowser": true,
"launchUrl": "api/security",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"applicationUrl": "http://localhost:60669/"
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果我复制appsettings.Development.json并重命名为appsettings.Production.json它可以工作.
我在prod文件中更改了"MyName"的值并记录了它.是的,从appsettings.Production.json读取.
怎么样和为什么?生产没有在任何地方定义.
Kah*_*azi 16
默认值ConfigurationBuilder是查找appsettings.<EnvironmentName>.json文件,因此根据您使用的环境,更改此文件的名称.当您在IIS Express中Development时,您处于部署应用程序的环境中Production.这就是你需要的原因appsettings.Production.json.
在调试时,会调用一个环境变量ASPNETCORE_ENVIRONMENT,该变量设置为,Development并且在部署中ASPNETCORE_ENVIRONMENT未设置,默认为Production
| 归档时间: |
|
| 查看次数: |
7352 次 |
| 最近记录: |