为什么哦为什么VB.NET不会连接到这个数据库?

时间:2010-06-24 20:49:10

标签: vb.net sql-server-2005 connection-string database-connection

首先,我可以使用SQL Server企业管理器连接到这两个数据库,因此我知道服务器已启动且可用。其中一个是SQL1,另一个是SQLTEST。

在我的程序中,当我使用以下连接字符串时, work 连接正常:

conn = New DBConnect("Data Source=SQL1;Initial Catalog=SignInspection;Integrated Security=SSPI")

但是,如果我将SQL1更改为SQLTEST连接超时,除了超时错误之外我不会收到任何错误。

我可以在SQLTest上运行探查器,看看它绝对不是尝试连接。没有任何事情可以发生,不是窥视,也不是无助。

有什么想法吗?感谢

编辑:

嗯,这是一个有争议的问题,因为我在SQL1服务器上正常运行了身份验证。

我会在这里发布配置,以便其他人可以受益。

首先,Web服务器正在运行IIS和.NET。用户使用Active Directory登录到Intranet,并且.NET页面需要检索其登录凭据(用户名最明显)。该数据库是SQL Server 2005,在不同的计算机上运行。但.NET应用程序需要impersonate作为另一个用户才能连接到数据库。

要成功完成这两件事,请转到Windows>运行,输入 inetmgr 并点击运行。导航到该站点并右键单击>单击属性,然后单击标题为目录安全性的选项卡,单击编辑.. ,确保 集成Windows身份验证并启用摘要式身份验证。输入正确的AD域,然后单击“确定”。应用设置/点击确定。

在web.config中,您需要以下行

<authentication mode="Windows" />
<identity impersonate="true" username="myDomain\MyUserName" password="123mypasswordgoeshere">

当然,使用在您的域和SQL服务器上具有登录权限的用户名和密码替换 myDomain \ MyUserName 123mypasswordgoeshere 。可能会修改连接字符串,但这是我的,它可以工作:

Server=SQL1;Database=SignInspection;Trusted_connection=True;

这些步骤对我有用,希望它们对其他人有用。

2 个答案:

答案 0 :(得分:0)

当您与企业管理器连接时,是否与运行VB.Net代码的机器相同?

否则,它可以是很多东西,从防火墙或DNS到mdma提到使用错误的网络协议设置或者可能不接受远程连接。

This文章包含了要查看的内容列表(它适用于SQL 2000,但它至少可以让您入门)。

答案 1 :(得分:0)

显而易见的问题 - SQLTEST是否有一个名为“SignInspection”的数据库?您是否还使用Windows身份验证或SQL身份验证通过SQL Management Studio登录SQLTEST?我希望如果其中任何一个都是问题你会得到一个例外,但值得检查。