首先,我可以使用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;
这些步骤对我有用,希望它们对其他人有用。
答案 0 :(得分:0)
当您与企业管理器连接时,是否与运行VB.Net代码的机器相同?
否则,它可以是很多东西,从防火墙或DNS到mdma提到使用错误的网络协议设置或者可能不接受远程连接。
This文章包含了要查看的内容列表(它适用于SQL 2000,但它至少可以让您入门)。
答案 1 :(得分:0)
显而易见的问题 - SQLTEST是否有一个名为“SignInspection”的数据库?您是否还使用Windows身份验证或SQL身份验证通过SQL Management Studio登录SQLTEST?我希望如果其中任何一个都是问题你会得到一个例外,但值得检查。