Аутентификация SQL Azure AD, выдающая ошибку, связанную с сетью или экземпляром, произошла при установлении соединения с SQL Server - PullRequest
0 голосов
/ 09 декабря 2018

Я пытаюсь подключиться к 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 } );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...