Я пытаюсь подключиться к Azure SQL из службы webapi, работающей на IIS.Если я использую строку подключения с идентификатором пользователя и паролем, она работает нормально.
Когда я использую конструктор строки подключения, используя токен доступа, сгенерированный отправкой ClientAssertionCertificate в Azure AD, я получаю ошибку соединения выше.
Когда я создаю тот же код в консольном приложении и запускаю его на той же виртуальной машине, что и сервер IIS, он работает нормально.
Я подумал, что это может быть связано с разрешениями, поскольку он работает вКонсольное приложение.Я попытался изменить идентификатор, используемый DefaultAppPool, но это не сработало.
string accessToken = TokenFactory.GetAccessToken();
var builder = new SqlConnectionStringBuilder();
builder["Data Source"] = $"tcp:{dbServer}.database.windows.net,1433";
builder["Initial Catalog"] = dbName;
builder["Connect Timeout"] = 30;
builder["Persist Security Info"] = false;
builder["TrustServerCertificate"] = false;
builder["Encrypt"] = true;
builder["MultipleActiveResultSets"] = true;
var con = new SqlConnection(builder.ToString());
con.AccessToken = accessToken;
// attempting to use the con from the SqlConnecti
CompanyService _cs = new CompanyService(con);
var company = _cs.GetCompany(1);
return Request.CreateResponse(HttpStatusCode.OK, new { teststring = accessToken } );