我们有一个高负载的 sql 服务器,它不对外公开。Web 服务器通过局域网访问 sql 服务器。在大多数情况下,它工作得很好,但有时当 sql 服务器多次登录失败时(通常是由于负载,如果服务器重新启动或只是极端高负载情况),sql 服务器将开始阻止 Web 服务器的 ip。我们知道这是原因,因为我们有第二个 lan ip 专门用于这种情况。我们切换 ip,一切都很好。Web 服务器是 iis。当我们简单地重新启动 IIS 时,它不能解决问题。
这让我们陷入困境,因为服务器需要来自 sql 的信息。随着越来越多的缓存对象过期,服务器会不断轰炸 sql,直到得到它想要的东西。
我们发现由于密码错误导致审核失败,但显然密码是正确的。我猜想 SQL Server 上的某些程序正在使用审核来阻止 Web 服务器,但我不知道是什么。我查找了已安装的程序,但无济于事。
答案1
我发现使用 .NET Framework 4.5+ 时,ASP .NET 网站的性能会变慢,SQL Server 端也会出现死锁和连接问题。这是一个错误,它会导致与通过 IRequiresSessionState 接口实现 KeepSessionAliveHttpHandler 的 SessionState 不一致。
该错误已在 .NET Framework 4.5.1 上修复,但在 4.7 及以上版本中再次出现。社区建议将 uploadReadAheadSize 设置为无限制。此设置可能会导致 IIS 消耗更多 RAM。
请考虑回收每天至少涂抹2次水池。