无法从Vista x64 Windows服务连接到SQL Server 2005 Db

时间:2008-12-23 02:00:15

标签: sql-server-2005 windows-services windows-vista permissions

我正在尝试从Vista Home Premium x64中运行的.NET Windows服务连接到远程SQL Server 2005数据库。我可以从控制台应用程序访问远程数据库没有问题。我可以从Windows服务连接到本地数据库没有问题。我能够从XP的服务连接没有问题。没有防火墙或防病毒运行。如何配置此服务以便能够连接到远程数据库?

我尝试通过将Windows服务作为本地管理员帐户,LocalSystem,LocalService和NetworkService运行来进行连接。

连接字符串:

数据源= SERVER_NAME;初始目录= DB_NAME;集成安全性= True;

错误:

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

更多信息:

我还尝试使用SQL Server身份验证进行连接但没有成功:

数据源= SERVER_NAME;用户ID = USER_ID;密码= PWD;初始目录= DB_NAME

此连接字符串也可以从控制台应用程序中运行。

更多信息:

我为Windows服务和控制台应用程序运行了Process Monitor。 Windows服务显示\ SERVER_NAME \ pipe \ sql \ query是ACCESS DENIED,但是当读取/写入文件到\ SERVER_NAME \ pipe \ sql \ query时,控制台应用程序显示SUCCESS。

2 个答案:

答案 0 :(得分:1)

好主啊!为什么本网站上的所有乱码和复杂的回复。创建用户帐户
本地或域并设置服务以使用该帐户。然后进入SQL Server并将新帐户添加到数据库并设置权限。瞧!

哦,是的,不要用SQL身份验证来困扰自己。集成安全性更容易维护,并且在web.config中没有密码更安全。

答案 1 :(得分:0)

1)打开命令提示符。输入“ping SERVER_NAME”。它会回应吗?如果这不起作用,您可能会遇到DNS或连接问题。

2)“telnet SERVER_NAME 1443”。你看到了什么或拒绝你的连接吗?这将明确地告诉你是否有人在另一端听。

3)进入SQL Server Management Studio。右键单击服务器的“属性”。从左侧选择“连接”。是否选中“允许远程连接”?

4)由于您正在使用网络服务/系统运行,因此您需要确保在服务器上为计算机帐户DOMAIN \ CLIENTSYSTEMNAME $配置了登录。注意$符号。这是您的计算机帐户,这将是SQL Server将看到的用户。