我确实找到了解决方案,但我试图了解它为何失败,以及为什么我的解决方案能够解决问题。
我们有一个在 Web 服务器和 SQL 服务器之间使用表单身份验证的应用程序,Web 服务器运行服务器 2008,SQL 服务器运行 2008 r2 和 SQL 服务器 2008。
八月份,SQL 服务器用 .net 3.5.1 进行了修补,Web 服务器未受影响,并且表单身份验证继续工作。
一周前,由于硬件故障,我们将 Web 服务器虚拟化到 vSphere 服务器上。之后,表单身份验证失败,事件代码为 4005,详细信息代码为 50201,提供的票证无效(在 SQL 服务器上)。事实上,SQL 服务器开始生成 Schannel 错误,并且每天开始出现 3-4 次蓝屏。
此时我第一次接触 SQL Server,错误不明确,我能找到的任何参考信息都与区域警报(我们不运行)或内存错误有关。所以我应用了 Service Pack 1,它停止了蓝屏,但没有修复表单身份验证。
此时,我们有一个解决方法,所以我们将其放在次要位置,同时完成另一个项目,而我昨晚就可以重新开始做这件事了。
第一件事是调整 SQL 服务器上的 webconfig 文件中的某些代码,但没有任何效果。接下来是重新生成并更改机器密钥,但仍然没有变化。更新 DNS 服务器,也没有变化。
最后,我完成了所有 Windows 更新的安装,重启了两次(通过 RDP 安装了网卡驱动程序,但失败了,而且我没有服务器房间钥匙,这很有趣)。
此后,表单身份验证又可以正常工作了。并且 SQL Server 不再生成那么多错误,从那时起,我只遇到了两个 schannel 错误。
简而言之,当 Web 服务器被克隆到虚拟机上时,表单身份验证开始失败,这导致 SQL 服务器出现蓝屏?并且表单身份验证失败。并且只能通过对 SQL 服务器应用补丁来修复?(我希望我一次修补一个服务器,这样我就可以确切地知道哪个服务器上的哪个补丁修复了它)。
我的问题是它为什么会失败,为什么打补丁就能修复它?我讨厌在没有完全理解原因和方法的情况下修复某些东西。
答案1
这似乎是一个已知问题,我只是想更好地了解其根本原因。
类似,但我没有运行网络农场