我已经设置了一个具有读取和写入服务主体名称权限的SQL Server服务帐户。当SQL Server启动时,我在日志中收到预期的消息,表明该服务帐户已成功注册了SPN:
SQL Server网络接口库已成功为SQL Server服务注册了服务主体名称(SPN)[MySPN]。
与数据库服务器的连接按预期使用Kerberos身份验证,并且一切正常。
但是,当我关闭SQL Server时,会在日志中输入一条消息,表明无法注销SPN:
SQL Server网络接口库无法注销SQL Server服务的服务主体名称(SPN)[MySPN]。错误:0x6d3,状态:4.管理员应手动注销此SPN,以避免客户端身份验证错误。
我检查了是否没有重复的SPN,并检查了SPN是否已注册到正确的服务帐户,并且仅注册到了该帐户。服务器已重新启动几次。Microsoft的Kerberos Config Manager不提供任何见解。
我不明白为什么允许该服务帐户创建SPN但不允许删除它。
当我尝试在可枚举对象上使用?.First()时,当对象不包含任何项时,它会抛出错误"sequence contains no elements".
我认识到解决方案是使用.FirstOrDefault(),但我不明白为什么我原来的努力不起作用.我误解了某些东西还是只是"其中一件事"?