嗨,我将其发布到了log4net用户组,但我也想将其发布在这里。
我正在一个需要Azure MSI从Azure PaaS到Azure SQL进行连接的项目中。想知道log4net的ADOAppender是否已经支持这种已经建立的连接机制。据我所知,不是,但我想在扩展log4net之前先问问社区。 p>
要支持MSI应用程序不能单独使用连接字符串连接到数据库,它们需要从Azure获取访问令牌,然后在SqlConnection对象上设置AccessToken属性。就像下面的代码一样:
private static SqlConnection GetSqlConnection()
{
var sqlConnection = new SqlConnection(GetConnectionString());
if (sqlConnection.DataSource != "(localdb)\\MSSQLLocalDB")
sqlConnection.AccessToken = new AzureServiceTokenProvider()
.GetAccessTokenAsync("https://database.windows.net/").Result;
return sqlConnection;
}
此代码使用两个Microsoft nuget包来获取访问令牌。
谢谢!