【发布时间】:2019-08-20 18:02:16
【问题描述】:
我正在使用 NLog 并使用 ADO.NET 提供程序将日志消息写入数据库。
我已为我的服务器启用托管标识,我想连接托管标识并在 Azure SQL 中写入日志。我在 nlog 配置文件中有 SP。
我怎样才能做到这一点? nlog配置文件需要修改什么?
- NLog 版本:4.6.6
- 平台:. .NET Core 2
- 需要使用 Azure SQL 中的托管标识记录错误
编辑- 此外,我尝试通过代码构建数据库目标。但无法设置访问令牌。 它正在抛出错误
不支持关键字:',access_token'。
LogManager.LoadConfiguration(String.Concat(Directory.GetCurrentDirectory(), "/nlog.config"));
string connectionString = "Data Source=servername.database.windows.net; Initial Catalog=dbname;";
SqlConnection conn = new SqlConnection(connectionString);
conn.AccessToken = accessToken;
conn.Open();
var databaseTarget = (DatabaseTarget)LogManager.Configuration.FindTargetByName("database");
databaseTarget.ConnectionString = string.Format("{0},access_token ={1}", connectionString, conn.AccessToken);
【问题讨论】:
-
您是否尝试过使用想要的身份设置连接字符串:docs.microsoft.com/en-us/azure/storage/common/…
-
我正在使用 Azure sql 存储日志,而 nlog 文档在其文档中没有任何参数化身份令牌的内容。 github.com/NLog/NLog/wiki/Database-target
-
NLog DatabaseTarget 要求您使用 ConnectionString 来设置身份验证。您是否尝试过询问 Microsoft Azure SQL 是否可以与 Ado-ConnectionString 一起使用?
-
嗨 Rolf,我可以使用 System.Data.SqlClient 的 SqlConnection 连接 Azure Sql。 SqlConnection 支持 access_token 属性。我在 NLog.Targets 的 DatabaseTarget 类中找不到类似的东西。我正在使用 4.6.6 的 NLog 类。
-
NLog DatabaseTarget 不是 Azure SQL 特定的。所以不能直接设置
SqlConnection.acces_token,除非可以使用ConnectionString。
标签: c# azure-active-directory azure-sql-database nlog azure-virtual-machine