Windows服务中的Wcf库

时间:2010-12-08 14:29:30

标签: sql-server wcf windows-services

我无法从我的Windows服务连接到SQL服务器

  

例外:无法启动服务。   System.ServiceModel.FaultException`1 [System.ServiceModel.ExceptionDetail]:   用户登录失败   'LOBAANSOFTWARES \ LBS-PC-19 $'。 (故障   细节等于An ExceptionDetail,   可能是由   IncludeExceptionDetailInFaults = TRUE,   其价值是:   System.Data.SqlClient.SqlException:   用户登录失败   'LOBAANSOFTWARES \ LBS-PC-19 $'。在   System.Data.SqlClient.SqlInternalConnection.OnError(SQLEXCEPTION   exception,Boolean breakConnection)at   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()   在   System.Data.SqlClient.TdsParser.Run(RunBehavior   runBehavior,SqlCommand cmdHandler,   SqlDataReader dataStream,   BulkCopySimpleResultSet   bulkCopyHandler,TdsParserStateObject   stateObj)at   System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(布尔   enlistOK)at   System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo   serverInfo,String newPassword,   Boolean ignoreSniOpenTimeout,   TimeoutTimer超时,SqlConnection   拥有对象)   System.Data.SqlClient.SqlInternalConnecti ...

他们是开始解决此解决方案的另一项服务

2 个答案:

答案 0 :(得分:1)

错误信息非常清楚:

  用户

登录失败   'LOBAANSOFTWARES \ LBS-PC-19 $'。

该用户(运行您的服务的计算机的计算机名称)没有登录SQL Server的任何权限。

你可以:

  • 授予该用户连接SQL Server和正确数据库的权限
  • 让服务在具有SQL Server
  • 权限的其他用户帐户下运行
  • 在NT服务应用程序中定义特定的连接字符串,以使用特定用户连接到SQL Server

您的连接字符串可能类似于:

server=(your server name);database=YourDatabase;Integrated Security=SSPI

这会尝试与运行该服务的用户连接到SQL服务器 - 默认情况下是您计算机的计算机帐户。

您可以更改连接字符串以使用您创建的特定SQL Server用户:

server=(your server name);database=YourDatabase;User ID=YourNewUser;Pwd=Top$Secret

答案 1 :(得分:0)

您是否检查过数据库的安全性以确保用户存在且具有足够的连接权限? Windows服务是否使用其运行的用户帐户的正确密码?