【发布时间】:2019-03-21 13:51:13
【问题描述】:
我已经阅读了一些关于为部署 ASP.Net Core 应用程序设置环境的文档。这些文章通常参考发展。 Staging 和 Production 的名称,但绝不偏离这些传统的环境名称。
通常,一旦您退出“开发”,您希望关闭开发/调试设置,以免敏感信息泄露到网络上,以防您的应用程序崩溃。这是有道理的。
但是,我的应用程序处于开发的早期阶段,我需要两个可以调试的开发环境配置。具体来说,我的团队主要希望在本地开发,连接到本地 SQL Server 数据库。但是,我们需要设置和测试 Azure 数据库,对于初步设置,如果我们可以在本地运行服务器开发模式,并且能够从我们的开发盒连接到我们的 Azure 数据库,将会有所帮助。
我想做的是创建两个名为 aspsettings.Development.json 和 aspsettings.LocalDevelopment.json 的配置文件,这两个文件都在我的解决方案中的两个 ASP.Net 核心项目中——一个用于 Web API,另一个用于 UI项目。
Development 将包含用于连接到适当的开发数据库服务器(用于需要访问 Azure 的开发测试的 Azure 数据库)的所有值,LocalDevelopment 环境将用于连接到本地数据库。
我已将这些文件添加到我的项目中,将 Development 详细信息复制到 LocalDevelopment 并仅更改了 API 项目配置的连接字符串。
接下来,我打开了我的项目属性并添加了两个用于调试的配置文件。为了解决这个问题,我为 API 项目和 UI 项目创建了这些相同的配置文件。这些配置文件被命名为“IIS Local”和另一个“IIS Dev Server”。最后,在每个新配置文件的每个项目页面中,我分别输入了 ASPNETCORE_ENVIRONMENT--Development 和 LocalDevelopment 的值。
当我将应用程序调试为 Development, it works fine. However, when I run the application using theLocalDevelopment` 环境和配置文件时,我收到以下错误:
错误。处理您的请求时发生错误。请求 ID:0HLLE04D5NFDU:00000001
开发模式切换到开发环境会显示更多 有关所发生错误的详细信息。
不应在部署中启用开发环境 应用程序,因为它可能会导致敏感信息 向最终用户显示的异常。对于本地调试, 开发环境可以通过设置启用 ASPNETCORE_ENVIRONMENT 环境变量到开发,和 重新启动应用程序。
这似乎不成立,因为两个配置对于它们各自的项目都是相同的,唯一的区别是 API 中的连接字符串,而且我确实添加了一个 EnvironmentName 属性以进行标识。
我可能做错了什么?
这是LocalDevelopment 文件的内容。以防万一我遗漏了什么。
API 中的设置
{
"Logging": {
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
},
"EnvironmentName": "LOCAL",
"ConnectionStrings": {
"Database": "xxx"
}
}
用户界面中的设置
{
"Logging": {
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
}
}
【问题讨论】:
标签: azure asp.net-core asp.net-core-configuration