我知道这几乎是重复的:错误“登录失败,用户NT AUTHORITY \ IUSR“”在ASP.NET和SQL Server 2008和用户登录失败“用户名” - System.Data.SqlClient.SqlException与LINQ中外部项目/类库,但是与我服务器上的其他应用程序相比,有些东西没有加起来,我不确定为什么。
使用的盒子:
Web框
SQL框
SQL测试框
我的应用程序:
我有一个ASP.NET Web应用程序,该应用程序引用了使用LINQ-to-SQL的类库。在类库中正确设置了连接字符串。由于用户“用户名”的登录失败-外部项目/类库中带有LINQ的System.Data.SqlClient.SqlException,我也将此连接字符串添加到了Web应用程序中。
连接字符串按原样使用SQL凭据(在Web应用程序和类库中):
<add name="Namespace.My.MySettings.ConnectionStringProduction"
connectionString="Data Source=(SQL Test Box);Initial Catalog=(db name);Persist Security Info=True;User ID=ID;Password=Password"
providerName="System.Data.SqlClient" />
通过将其添加到服务器资源管理器中,确认该连接正常。这是我的.dbml文件使用的连接字符串。
问题:
我收到以下错误:
System.Data.SqlClient.SqlException: Login failed for user 'DOMAIN\MACHINENAME$'.
现在引用此错误在ASP.NET和SQL Server 2008中出现错误“用户'NT AUTHORITY \ IUSR'的登录失败”,它表示实际上是本地网络服务,使用任何其他非域名都将无效。
但是我很困惑,因为我已经选中了SQL Box和SQL Test Box SQL Management Studio,并且都NT AUTHORITY/NETWORK SERVICE
在数据库级别的“安全性->登录名”下,未在“安全性->用户”下列出,但是在数据库级->用户我在连接字符串中显示了用户。
在Web服务器上的NTFS级别上,权限对NETWORK SERVICE具有完全控制权。
之所以感到困惑,是因为我的Web服务器上还有许多其他Web应用程序,它们同时引用SQL Box和SQL Test Box上的数据库,并且它们都可以工作。但是除了使用类库之外,我无法找到它们与当前应用程序之间的区别。那会重要吗?检查NTFS权限,在服务器和数据库级别设置安全登录,连接字符串和连接方法(SQL Server凭据)以及IIS应用程序池和其他文件夹选项都是相同的。
为什么这些应用程序可以在不将machinename $添加到我的两个SQL框的权限的情况下工作?但这就是一个链接告诉我要解决此问题。