我遇到了间歇性登录问题,特别是从Windows Server 2016计算机到Azure SQL数据库的登录问题。我有一个应用程序,该应用程序每30秒连续请求一个Azure AD令牌,并在sql连接对象中使用该令牌连接到SQL Server并运行查询。此循环间歇性失败,用户NT AUTHORITY \ ANONYMOUS LOGON登录失败。
失败似乎遵循一种模式,该模式适用于6个请求,然后针对6个请求而失败。我还将循环时间更改为15秒,并且模式增加了一倍。
我在两台不同的Windows 10计算机和Windows Server 2012 R2上运行了相同的控制台应用程序,并且运行正常。
该应用程序的代码如下(出于安全原因,未显示检索令牌的变量):
while (true)
{
var token = Task.Run(() =>
SignInWithClientSecret("https://database.windows.net/", aadinstance,
applicationId, secret, true)).Result;
using (SqlConnection conn = new
SqlConnection(connectionstring))
{
conn.AccessToken = token.AccessToken;
//Console.WriteLine(token.AccessToken);
try
{
conn.Open();
using (var cmd = new SqlCommand(sqlcommand, conn))
{
var result = cmd.ExecuteNonQuery();
Console.WriteLine("Executed command");
}
}
catch (Exception ex)
{
Console.WriteLine("Error executing sql command: " +
ex.Message);
}
}
Thread.Sleep(30000);
}
答案 0 :(得分:0)
该问题是由于安装了.NET Framework。我升级到4.7.2,它可以工作。