我知道这几乎是重复的:错误"登录失败,用户NT AUTHORITY\IUSR""在ASP.NET和SQL Server 2008和用户登录失败"用户名" -在外部System.Data.SqlClient.SqlException与LINQ项目/类库但有些东西与我服务器上的其他应用程序相比并没有加起来,我不知道为什么.
正在使用的盒子:
Web Box
SQL框
SQL测试框
我的应用程序:
我有一个ASP.NET Web应用程序,它引用了一个使用LINQ-to-SQL的类库.连接字符串在类库中正确设置.按照在外部项目/类库System.Data.SqlClient.SqlException与LINQ -用户登录失败"用户名"我还添加了此连接字符串的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" />
Run Code Online (Sandbox Code Playgroud)
此连接通过将其添加到服务器资源管理器确认为正常工作.这是我的.dbml文件正在使用的连接字符串.
问题:
我收到以下错误:
System.Data.SqlClient.SqlException: Login failed for user 'DOMAIN\MACHINENAME$'.
Run Code Online (Sandbox Code Playgroud)
现在引用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框的权限的情况下工作?但这就是一个链接告诉我要解决这个问题的方法.