NLog 连接字符串的 appsettings.json 中的引用变量
Reference variables in appsettings.json for NLog connection string
我的项目中有这个 appsettings.json
文件,如下所示:
{
"ConnectionStrings": {
"MyConnectionString": "Server=SQLSERVER;Database=MyDatabse;Trusted_Connection=True;"
},
"NLog": {
"targets": {
"database": {
"type": "Database",
"dbProvider": "System.Data.SqlClient",
"connectionString": "Server=SQLSERVER;Database=MyDatabse;Trusted_Connection=True;"
}
}
}
}
我不想在多个地方写我的连接字符串。我可以以某种方式引用以前的连接字符串吗?
我已经尝试过:"connectionString": "${appsetting:name=ConnectionStrings.MyConnectionString}"
,但没有用。
查看@Jogge 的回答,了解如何通过 NLog 配置引用连接字符串。 我的回答最初解决了默认情况下存在此类功能的问题 ASP.NET 核心基础设施和我不知道 NLog 配置提供这样的功能。
旧答案
此功能在默认 ASP.NET 应用程序配置中不可用 appsettings.json
。
我绝对建议不要在 appsettings.json
文件中存储连接字符串。连接字符串是敏感数据,不应成为以纯文本形式存储且可能容易受到攻击的文件的一部分。此外,appsettings.json
是 Git 中签入的文件之一,因此连接字符串将在 git 历史记录中清晰可见。相反,应该在 user secrets 中或通过环境设置配置连接字符串(例如 Azure 有一个特殊的 UI 用于连接字符串)。
您可以使用 NLog ConfigSetting 布局渲染器。
只需将其用于 NLog 部分中的连接字符串:
"connectionString": "${configsetting:name=ConnectionStrings.MyConnectionString}"
来源:
https://github.com/NLog/NLog/wiki/ConfigSetting-Layout-Renderer
我的项目中有这个 appsettings.json
文件,如下所示:
{
"ConnectionStrings": {
"MyConnectionString": "Server=SQLSERVER;Database=MyDatabse;Trusted_Connection=True;"
},
"NLog": {
"targets": {
"database": {
"type": "Database",
"dbProvider": "System.Data.SqlClient",
"connectionString": "Server=SQLSERVER;Database=MyDatabse;Trusted_Connection=True;"
}
}
}
}
我不想在多个地方写我的连接字符串。我可以以某种方式引用以前的连接字符串吗?
我已经尝试过:"connectionString": "${appsetting:name=ConnectionStrings.MyConnectionString}"
,但没有用。
查看@Jogge 的回答,了解如何通过 NLog 配置引用连接字符串。 我的回答最初解决了默认情况下存在此类功能的问题 ASP.NET 核心基础设施和我不知道 NLog 配置提供这样的功能。
旧答案
此功能在默认 ASP.NET 应用程序配置中不可用 appsettings.json
。
我绝对建议不要在 appsettings.json
文件中存储连接字符串。连接字符串是敏感数据,不应成为以纯文本形式存储且可能容易受到攻击的文件的一部分。此外,appsettings.json
是 Git 中签入的文件之一,因此连接字符串将在 git 历史记录中清晰可见。相反,应该在 user secrets 中或通过环境设置配置连接字符串(例如 Azure 有一个特殊的 UI 用于连接字符串)。
您可以使用 NLog ConfigSetting 布局渲染器。
只需将其用于 NLog 部分中的连接字符串:
"connectionString": "${configsetting:name=ConnectionStrings.MyConnectionString}"
来源: https://github.com/NLog/NLog/wiki/ConfigSetting-Layout-Renderer