无法通过Azure应用服务连接到Azure SQL数据库

时间:2020-05-29 18:55:09

标签: asp-classic azure-active-directory azure-sql-database azure-web-app-service

我们有一个ASP Classic Web应用程序在Azure应用服务中成功运行,该服务当前使用SQL Server身份验证访问Azure SQL数据库。我们需要将身份验证更改为Active Directory用户。我们设法通过访问Azure SQL数据库的开发人员工作站使该应用程序正常工作,在下面查看有效和无效的方法。

*不适用于台式机,也不适用于Azure Conportail.Open“ Provider = SQLOLEDB; Server = tcp:.database.windows.net,1433;初始目录=;持续安全信息= False;用户ID = @leg * .com;密码=; MultipleActiveResultSets = False;加密= True; TrustServerCertificate = False;连接超时= 30;身份验证= ActiveDirectoryPassword;“

*不适用于台式机,也不适用于Azure Conportail.Open“ Provider = SQLOLEDB.1; Server = tcp:.database.windows.net,1433; Initial Catalog =; Persist Security Info = False;用户ID = @leg * .com;密码=; MultipleActiveResultSets = False;加密= True; TrustServerCertificate = False;连接超时= 30;身份验证= ActiveDirectoryPassword;“

*在桌面上可用,而在Azure 中不可用 Conportail.Open“ Provider = MSOLEDBSQL; Server = tcp:.database.windows.net,1433; Initial Catalog =; Persist Security Info = False;用户ID = @leg * .com;密码=; MultipleActiveResultSets = False;加密= True; TrustServerCertificate = False;连接超时= 30;身份验证= ActiveDirectoryPassword;“

要在Azure App Service中实现此功能,我们缺少什么?

1 个答案:

答案 0 :(得分:0)

更新

您可以按照the offical document进行门户设置。我尝试过并成功。

  1. 创建SQL托管实例(可能会花费很长时间)
  2. 配置Active Directory管理员
  3. 配置数据库

完成后,您可以找到类似pic的连接字符串。您只需将其复制并粘贴到您的代码中即可。它对我有用。

如下所示的连接字符串

Server=tcp:panshubeidb.database.windows.net,1433;Initial Catalog=dbname;Persist Security Info=False;User ID={your_username};Password={your_password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Authentication='Active Directory Password';

enter image description here

enter image description here

重要

您的SQL连接字符串应类似于Server=tcp:testdb.database.windows.net,1433;Initial Catalog=test;Persist Security Info=False;User ID=sasasa;Password={your_password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;

您可以在门户网站(如图片)中找到它。

enter image description here

您还可以在web.config中配置连接字符串的名称。

<connectionStrings>
    <add name="DefaultConnection" connectionString="You local db connnection strings or others" />
    <add name="DefaultConnection11" connectionString="Data Source =**;Initial Catalog = {your db in server not azure};User Id = {userid};Password ={password};" />
</connectionStrings>

您可以像我给定的代码一样配置Connectionstrings。而当您想取消应用程序的所有权时。您可以切换到生产数据库,而无需在代码中进行任何更改。有关更多详细信息,请参见this article

enter image description here

它的优先级高于web.config中的配置,并且它将覆盖代码中的地址,因此在此处进行设置后,在部署时无需修改web.config文件。