如图:

The target principal name is incorrect.  Cannot generate SSPI context_Domain


最近公司停电,也设置过 DNS ,访问内测网页时常常出现上图的错误!~

开始以为 web 服务器的问题,进去查看DNS ,发现DNS 改为网关的 IP ! ,改回来后还是不行。

(数据库服务启动账户为:network service)


从错误看:目标主体名称不正确,无法生成 SSPI 上下文。


可能原因是:

1. 正在使用集成安全性。

2. 使用 Kerberos 执行安全委派。

3. SqlServer 服务启动账户不是 Local System 。


解决方法:

在同一个域中的任意一台计算机打开命令行。


执行查看要连接的数据库的 spn,执行 :SETSPN -L DBServerName

(注意:不是 SETSPN -L Domain\administrato ,这个是查看域管理员账号的spn)

The target principal name is incorrect.  Cannot generate SSPI context_Domain_02

上面看到如下:

Registered ServicePrincipalNames 用于 CN=DBServerName,CN=Computers,DC=Domain,DC=com:
MSSQLSvc/DBServerName.Domain.com:1433
MSSQLSvc/DBServerName.Domain.com
HOST/DBServerName.Domain.com
HOST/DBServerName


发现少了一个 spn :

MSSQLSvc/DBServerName:1433


现在将该 spn 注册到域中,执行: SETSPN -A MSSQLSvc/DBServerName:1433 DBServerName

The target principal name is incorrect.  Cannot generate SSPI context_数据库_03


再查看spn,发现已经添加,过10几秒后,刷新网页访问正常!~



参考:

如何排查“Cannot generate SSPI context”(无法生成 SSPI 上下文)错误消息

​That “Cannot Generate SSPI Context” headache​

​‘Cannot Generate SSPI Context’ and Service Account Passwords​

​​客户端连接SQL报"Cannot Generate SSPI Context"错误​​

​​目标主体名称不正确,无法生成 SSPI 上下文。​​