You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure SQL DB Active Directory密码认证IIS中异常,VS正常却报adalsql.dll错误

解决IIS部署后Azure SQL AD认证报错:Unable to load adalsql.dll (0x2)

我之前在部署ASP.NET应用到IIS时碰到过完全一样的问题!这个错误的核心原因要么是ADAL SQL驱动未正确安装/注册,要么是IIS应用池身份没有访问驱动文件的权限,下面是一步步的解决方法:

1. 安装对应位数的ADAL SQL驱动

adalsql.dll是Azure AD认证SQL所需的专属驱动,必须严格匹配你的IIS应用池位数:

  • 如果你的应用池启用了“32位应用程序”(在应用池高级设置里可查看),请安装32位版本的ADAL SQL驱动
  • 否则直接安装64位版本
    安装时务必右键点击安装程序,选择“以管理员身份运行”,确保驱动被正确部署到系统目录(64位驱动默认在C:\Windows\System32,32位驱动在C:\Windows\SysWOW64)

2. 给应用池身份添加驱动目录的访问权限

默认的应用池身份(比如ApplicationPoolIdentity、NetworkService)可能没有读取adalsql.dll的权限,操作步骤:

  • 打开文件资源管理器,导航到驱动所在的系统目录(System32或SysWOW64)
  • 右键点击目录 → 属性 → 安全选项卡 → 编辑 → 添加
  • 在“输入对象名称来选择”框中输入IIS AppPool\[你的应用池名称],点击“检查名称”确认无误后点击确定
  • 给这个身份勾选读取和执行、列出文件夹内容、读取权限,点击应用并保存

3. 手动注册adalsql.dll(如果安装后仍报错)

有时候安装程序可能没正确完成dll注册,需要手动执行:

  • 打开管理员命令提示符:
    • 64位驱动注册:
      regsvr32 "C:\Windows\System32\adalsql.dll"
      
    • 32位驱动注册:
      regsvr32 "C:\Windows\SysWOW64\adalsql.dll"
      

执行成功会弹出“DllRegisterServer in adalsql.dll succeeded”的确认提示

4. 针对Active Directory集成认证额外检查

如果集成认证也存在问题,除了上面的步骤,还要:

  • 确保应用池的身份是Azure AD域账号(或已同步到Azure AD的本地域账号),并且该账号已被授予Azure SQL DB的访问权限
  • 如果是使用当前登录用户的身份(Windows身份验证),需要在IIS站点的身份验证设置中启用“Windows身份验证”,并确保配置了正确的Kerberos委派(如果需要跨域访问SQL DB)

最后,重启你的IIS应用池和站点,再测试连接应该就能正常工作了!

内容的提问来源于stack exchange,提问作者coder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:41:47