我有一个小的ASP.NET测试脚本,该脚本打开了到域中另一台计算机上SQL Server数据库的连接。并非在所有情况下都有效。
设定:
W2K8R2下的IIS 7.5试图连接到远程SQL Server 2008 R2实例。所有机器都在同一域中。
将ApplicationPoolIdentity用于网站时,它无法通过以下方式连接到SQL Server:
用户“ NT AUTHORITY \ ANONYMOUS LOGON”的登录失败。说明:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪,以获取有关错误及其在代码中起源的更多信息。
异常详细信息:System.Data.SqlClient.SqlException:用户'NT AUTHORITY \ ANONYMOUS LOGON'登录失败。
但是,如果我将过程模型标识切换为NETWORK SERVICE或我的域帐户,则数据库连接成功。
我已授予SQL Server中的\ $访问权限。
我没有在网站上进行任何形式的身份验证,这只是打开数据库连接以确保其正常工作的简单脚本。
我启用了匿名身份验证,并设置为使用应用程序池标识。
我该如何工作?为什么ApplicationPoolIdentity尝试使用匿名登录?更好的是,如何使它停止使用匿名登录?