最近开始无法连接到数据库的应用程序一直没有问题(并且在大约6个月左右没有对其进行任何活动开发).操作管理员无法说出可能导致问题的更改内容.
客户端应用程序使用具有Integrated Security = True的硬编码连接字符串,但是当应用程序尝试创建与数据库的连接时,它会抛出一个SQLException,表示"用户登录失败'NT AUTHORITY\ANONYMOUS LOGON".
我可以通过此帐户上的Management Studio登录数据库而不会出现问题.我在这个问题上看到的所有内容都是针对ASP.NET项目的,显然它是"双跳问题",它是一个客户端应用程序,最好不要成为问题.任何帮助将不胜感激.
客户端计算机和服务器计算机以及用户帐户位于同一域中.Windows防火墙关闭时会发生这种情况.
主要理论是:服务器大约一周左右重新启动,并且未能注册服务主体名称(SPN).未注册SPN可能导致集成身份验证回退到NTLM而不是Kerberos.
我看到很多人都会遇到这个错误,但他们的情况都与我的情况有所不同.
我有一个在Windows 2003 Server上的IIS 6.0中运行的ASP.NET 4.0 Web应用程序.
当我远程访问Web服务器框并在那里登录并以localhost而不是机器名称访问该站点时,Web应用程序正常工作.但是,当我从另一台客户端计算机访问该网站时,我收到以下错误:
Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'
Run Code Online (Sandbox Code Playgroud)
该网站启用了匿名访问,打开了Windows身份验证.该Web应用程序包含以下内容:
<authentication mode="Windows"> </authentication>
<identity impersonate="true"/>
<connectionStrings>
<add name="MyConnection" connectionString="Data Source=MyDbServer;Initial Catalog=MyDatabase;Integrated Security=True"
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
我的Web服务器正在虚拟服务器上运行.这有关系吗?我假设没有.
请注意,如果我在Impersonation = TRUE后在Web配置中添加了我的域\登录名和密码,则该站点可以正常工作.