在复杂环境中解决 IIS 与 SQL 2005 连接问题

在复杂环境中解决 IIS 与 SQL 2005 连接问题

我有一个复杂的环境,有许多高端的思科网络盒、防火墙和路由器。我使用 Windows 身份验证从 IIS 连接到 SQL Server 2005 时遇到许多 (100-200) 个连接超时错误(仅进行身份验证,未运行任何查询)。我们的网络工程师已经仔细研究了 tcp/ip 转储,我们内部没有 AD 专家,Kerberos 似乎在我们的数据库环境中不起作用,所以我想你们都可以指出有关 IIS 如何连接到 SQL Server 的文档,其中服务器的域与用户的域不同,并且用户的域通过专用租用线路位于另一个州。这两个位置都有冗余 DC 控制器和站点指标设置。网络极客认为 Kerberos 失败并默认为 NTLM 所需的时间可能是问题所在。

更多信息:我们再次聘请了 MS 首席顾问,我们发现 LSASS.exe sp? 正在 AD 框上消耗大量 CPU。罪魁祸首是 Barracuda SPAM 框针对不存在的元数据列对 AD 进行查询。如果我知道他是如何发现这一点的,我会发布。

TIA,查克

答案1

除非你将问题分解成更小的部分,否则我不确定你是否能得到一个好的答案。

我会从这些步骤开始,撤销所有没有帮助的更改。当您获得有关该问题的更多信息时,请更新您的问题:

  • 检查 DNS——确保您的 DNS 服务器能够及时响应:

    • 尝试在数据源中使用硬编码的 IP 地址,或者
    • 在 hosts 文件中添加一个条目,以消除名称解析延迟问题。
  • 通过将 Web 应用程序切换为使用 SQL 身份验证来排除 NT 身份验证问题。通常我不会想到这一点,但您在问题中提到了一些身份验证问题。

  • 验证Web服务器和DB服务器之间没有数据包丢失。

    • 尝试使用较大的数据包大小进行 ping,甚至同时运行以下 ping 命令的多个实例: ping -t -w 100 -l 5000 dbhost
  • 尝试改变您的连接池设置。

答案2

微软的 KB319723描述了在 SQL Server 和 IIS 中使用 Kerberos。只要它们位于同一个 AD 林中,使用来自另一个域的用户帐户对一个域中的 SQL 服务器进行身份验证应该没有问题。但是,我看到从域外连接到 SQL 服务器的命名实例时出现问题。您必须为命名实例设置 SQL 别名。

答案3

这是 Premier 支持用来查找 lsass 使用如此多 CPU 的原因的工具:spa_v2.msi“服务器性能顾问”将下拉值更改为活动目录,并借助 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Diagnostics REG_DWORD 将值从“0”更改为“5”,然后查看目录服务日志中查找错误。

这揭示了 OtherMailBox 的罪魁祸首查找。

然后,他从头脑中,cmd 窗口中取出这个:Ldifde -F foo.txt –s corpdc01 –P subtree –d “DC=Corp,DC=redmond,DC=Local” –r “(OtherMailBox=*)”

确定我们是否在 AD 中使用此对象。我们没有。日志显示了梭子鱼的 IP 地址,NSLOOKUP 完成了其余工作。将这些信息交给 IT 管理员,他们能够修复。

相关内容