Windows 8.1 服务无法连接到 SQL Server 数据库

Posted

技术标签:

【中文标题】Windows 8.1 服务无法连接到 SQL Server 数据库【英文标题】:Windows 8.1 service can't connect to SQL Server database 【发布时间】:2015-01-02 09:19:22 【问题描述】:

我有一台运行 Windows 8.1 的服务器正在连接。它正在运行 SQL Server 2014 Express。

我编写了一个连接到数据库的 C# 服务。不幸的是,当它作为服务安装时,它不会连接并抛出如下所示的错误。

我可以运行该应用程序并且它可以成功运行,但是当它是一项服务时它就无法运行。

我已启用 TCP/IP。我可以通过另一台机器上的 *** 将 management studio 连接到实例。

这是我的配置文件中的连接字符串

<value>Server=localhost\MSSQLSERVER2012;Initial CataLog=lms;Persist Security Info=No;Password=pw;User ID=user;Connect Timeout=5</value>

例外:

DomainExceptionHandler 捕获:System.Data.SqlClient.SqlException (0x80131904):建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定实例)

在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException 异常, Boolean breakConnection, Action'1 wrapCloseInAction) 在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj,布尔调用者HasConnectionLock,布尔异步关闭) 在 System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo,SqlInternalConnectionTds connHandler,布尔 ignoreSniOpenTimeout,Int64 timerExpire,布尔加密,布尔 trustServerCert,布尔集成安全,布尔 withFailover) 在 System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo,字符串 newPassword,SecureString newSecurePassword,布尔型 ignoreSniOpenTimeout,TimeoutTimer 超时,布尔型 withFailover) 在 System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo,字符串 newPassword,SecureString newSecurePassword,布尔重定向用户实例,SqlConnectionString connectionOptions,SqlCredential 凭据,TimeoutTimer 超时) 在 System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer 超时,SqlConnectionString 连接选项,SqlCredential 凭据,字符串 newPassword,SecureString newSecurePassword,布尔重定向用户实例) 在 System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity 身份,SqlConnectionString connectionOptions,SqlCredential 凭据,对象 providerInfo,字符串 newPassword,SecureString newSecurePassword,布尔重定向用户实例,SqlConnectionString userConnectionOptions,SessionData reconnectSessionData) 在 System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions 选项,DbConnectionPoolKey poolKey,对象 poolGroupProviderInfo,DbConnectionPool 池,DbConnection owningConnection,DbConnectionOptions userOptions) 在 System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool 池,DbConnection owningObject,DbConnectionOptions 选项,DbConnectionPoolKey poolKey,DbConnectionOptions 用户选项) 在 System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject,DbConnectionOptions userOptions,DbConnectionInternal oldConnection) 在 System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject,DbConnectionOptions userOptions,DbConnectionInternal oldConnection) 在 System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject,UInt32 waitForMultipleObjectsTimeout,布尔allowCreate,布尔onlyOneCheckConnection,DbConnectionOptions userOptions,DbConnectionInternal&连接) 在 System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject,TaskCompletionSource'1 重试,DbConnectionOptions userOptions,DbConnectionInternal& 连接) 在 System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection,TaskCompletionSource'1 重试,DbConnectionOptions userOptions,DbConnectionInternal oldConnection,DbConnectionInternal& 连接) 在 System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource'1 重试, DbConnectionOptions userOptions) 在 System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource'1 重试, DbConnectionOptions userOptions) 在 System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource'1 重试) 在 System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource'1 重试) 在 System.Data.SqlClient.SqlConnection.Open() 在 LMS.Core.Environment.SQLDeviceStateWriterProvider.SQLDeviceStateWriter.writeState(DateTime 时间戳)

【问题讨论】:

【参考方案1】:

对不起,这是我的错。 未正确调用连接字符串。

【讨论】:

以上是关于Windows 8.1 服务无法连接到 SQL Server 数据库的主要内容,如果未能解决你的问题,请参考以下文章

我的sql server 2008不能登录,用windows和sa都无法登录 标题: 连接到服务器 ---------------------------

Windows服务:无法启动服务。服务进程无法连接到服务控制器

SQL数据库连接到服务器出错——无法连接到XXX

无法通过 Windows 2012 上的系统 dsn 使用 ODBC 连接连接到 SQL Server 2008

我无法将套接字 io 与 windows phone 8.1 C# 连接

Azure ADF 管道无法连接到 Azure SQL