无法从Windows Web Server 2008上运行的Windows服务连接到SQL Server

时间:2014-02-28 01:51:11

标签: sql sql-server windows-services windows-server-2008-r2

尝试从 Windows服务(用vb.net编写)连接SQL服务器时,我遇到以下错误。

  

建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供者:命名管道提供程序,错误:40 - 无法打开与SQL Server的连接)

此服务在 Windows Web Server 2008 R2 SQL Server 2008 上运行。 SQL Server也位于同一台计算机上。此外,服务器上的防火墙已禁用。我有几个Web应用程序在同一个 Windows服务器上运行,连接到同一个 sql server ,并且没有连接问题。但是,只有当我尝试从仅限Windows服务进行连接时才会遇到此问题。

非常感谢任何帮助。

由于

1 个答案:

答案 0 :(得分:0)

您可能遇到以下问题之一。

您没有使用正确的连接字符串。从正在运行的服务中转出您实际使用的字符串,并确保可以连接它。

您有权限问题 - 您应该仔细检查服务正在使用的安全上下文。如果您尝试使用集成安全性或特别是用户模拟进行连接,则这是一个常见问题。

ADDED

如果您有间歇性问题,则存在不同的问题。 (不太可能基于你的问题描述。)我建议从服务中转储连接字符串以确保它是正确的原因是开发人员(包括我)经常发现它是正确的,当它不是时。 / p>

如果您使用集成安全性,则该进程使用服务的安全上下文运行,这是数据库将使用的用户上下文 - 查看服务特性,您指定用于运行服务的用户

如果使用模拟,您基本上将安全上下文切换为用户的安全上下文 - 如果网站也使用集成安全性,即通常不使用基于表单的安全性,则通常会这样做 - 适合内部使用,而不是面向公众的网站。