我有一个应用程序,需要在Windows上以给定的服务帐户运行。NET应用程序连接到MSSQL数据库,我在连接字符串中指定了使用的SQL server身份验证,即
<add name="conn" connectionString="Data Source=(localdb)\MSSQLLocalDB;initial catalog=MyDB;User Id=testuser;Password=xxx" providerName="System.Data.SqlClient" />
(运行服务时也会发生同样的情况)。
我已经花了一天多的时间研究这个问题,所以如果有人有什么想法可能是错误的,我将非常感谢。
SQL server日志中的错误消息为
07/12/2017 12:18:32,Logon,Unknown,Login failed for user 'testuser'. Reason:
Could not find a login matching the name provided. [CLIENT: <named pipe>]
07/12/2017 12:18:32,Logon,Unknown,Error: 18456<c/> Severity: 14<c/> State: 5.
但是,如果我使用我的域帐户登录到SSMS,则“testuser”列在“安全”下-->登录。
当我尝试启动服务时,发生的SQL异常是
System.Data.SqlClient。SqlException(0x80131904):用户“testuser”登录失败。
在System.Data.SqlClient.SqlInternalConnectionDS(DbConnectionPoolIdentity、SqlConnectionString connectionOptions、SqlCredential凭据、Object providerInfo、String newPassword、SecureString newSecurePassword、Boolean redirectedUserInstance、SqlConnectionString userConnectionOptions、SessionData reconnectSessionData、DbConnectionPool池、String accessToken、Boolean applyTransientFaultHandling)