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

IIS启用Windows认证后出现SQL Server连接错误问题排查求助

问题根因

核心原因是启用Windows认证+AD组授权规则后,ASP.NET内置的角色管理/成员资格服务自动触发,默认使用系统预置的LocalSqlServer连接字符串尝试连接本地SQL Express实例,而非你自定义的业务库连接字符串,目标实例不存在因此抛出26号错误。
你配置的业务库连接字符串本身没有问题,报错堆栈里的SetupApplicationServices、CreateMdfFile调用也验证了这一点——报错来自ASP.NET身份服务自动初始化的逻辑,不是你写的业务数据访问代码。

排查解决步骤
  • 第一步:调整角色管理器提供程序
    检查web.config的system.web节点,配置Windows认证场景专用的角色提供程序,禁用默认的SQL角色提供程序:
    <roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider">
      <providers>
        <clear />
        <add name="AspNetWindowsTokenRoleProvider" 
             type="System.Web.Security.WindowsTokenRoleProvider" 
             applicationName="/" />
      </providers>
    </roleManager>
    
    Windows认证+AD组授权的场景下,直接从Windows令牌读取用户角色信息即可,不需要连接SQL存储角色数据。
  • 第二步:移除默认的LocalSqlServer连接字符串
    在你的<connectionStrings>节点最顶部添加移除配置,避免框架 fallback 到默认的连接字符串:
    <connectionStrings>
      <remove name="LocalSqlServer" />
      <!-- 保留你原有自定义的连接字符串 -->
      <add name="ConnectionString" connectionString="Data Source=xxxxx;Initial Catalog=xxxxx;User ID=xxxxxx;Password=xxxxxx" providerName="System.Data.SqlClient" />
    </connectionStrings>
    
  • 第三步:可选校验项
    确认IIS应用池标识对站点目录有读取权限、DOMAIN\ADGroup组名拼写完全正确、IIS服务器已加入对应域,避免授权逻辑异常触发额外的身份服务初始化流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 07:09:03