0

我们有几个使用 SQL Server 身份验证的旧 ASP 和 PHP Web 应用程序。周期性地,所有应用程序都无法连接到我们的 SQL Server 2000 数据库服务器,从而导致访问被拒绝。

对应于大致相同的时间,我们得到

1115 Cannot generate SSPI Context SQLSTATE HY000

SQLServer 2000 服务器上的错误。

这是奇怪的部分 - 重新启动Web服务器可以解决问题。重新启动数据库服务器没有任何效果。

这对我来说毫无意义——我不认为 SSPI 以任何方式涉及 SQL Server 身份验证。

有任何想法吗?

编辑:

一些额外的细节:

Web 服务器位于 DMZ 中。Web 服务器上的 hosts 文件有一个数据库服务器条目(并且 IP 地址是正确的),因此 Web 服务器(至少理论上)甚至不应该通过 DNS 连接到数据库服务器。

这似乎不是防火墙问题。

4

2 回答 2

0

我认为您是对的,根据我的经验,该错误与 SQL 身份验证无关。Web 服务器是否位于任何类型的防火墙后面?是否对任一服务器上的“主机”文件进行了任何更改?当您遇到这些问题时,您是否尝试过从 Web 服务器 ping SQL Server 以确保 Web 服务器能够解析 SQL Server 的名称?我会检查企业管理器中的活动监视器,以确保 Web 应用程序肯定使用 SQL 身份验证进行连接。一种可能性是某种网络或域控制器问题 - 这可以解释来自 Web 服务器的连接断开和 SQL Server 上的 SSPI 上下文错误,但不确定为什么重新启动 Web 服务器会解决它。

于 2009-02-10T22:21:32.063 回答
0

我们在我们的主服务器和其他国家的一些客户之间有这个。

如果这里和那里之间有太多延迟(例如防火墙),那么底层的 Kerberos 就会失去情节(技术术语:-)。

我们通过指定端口来修复它。另外,我建议使用服务器的 FQDN。所以我们现在使用:“SQLServer.domain.tld\InstanceName,1234”

于 2009-03-06T19:52:03.070 回答