代码之家  ›  专栏  ›  技术社区  ›  Wayne Werner

为什么?为什么vb.net不能连接到这个数据库?

  •  0
  • Wayne Werner  · 技术社区  · 14 年前

    首先,我可以使用SQL Server Enterprise Manager连接到这两个数据库,因此我知道服务器已经启动并且可用。其中一个是sql1,另一个是sqltest。

    在我的程序中,当我使用以下连接字符串时, 工作 连接良好:

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

    但是,如果我改变 SQL1 SQLTEST 连接超时。除了超时错误,我没有其他错误。

    我可以在sqltest上运行profiler,并看到它甚至没有尝试连接。什么都没发生,不是偷窥,也不是地狱。

    有什么想法吗?谢谢

    编辑:

    好吧,这是一个无意义的观点,因为我在我们的SQL1服务器上使身份验证工作正常。

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

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

    要成功完成这两项操作,请转到Windows运行,输入 国际航空运输公司 打跑。导航到网站,右键单击“属性”,然后单击标题为的选项卡。 目录安全性 点击 编辑… 确定 只有 集成Windows身份验证 摘要式身份验证 启用。输入正确的广告领域并单击“确定”。应用设置/点击OK。

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

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

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

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

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

    2 回复  |  直到 14 年前
        1
  •  0
  •   Hans Olsson    14 年前

    当您连接到EnterpriseManager时,它是否来自与您运行vb.net代码相同的计算机?

    否则,可能会有很多事情发生,从MDMA提到的防火墙或DNS到使用错误的网络协议设置或不接受远程连接。

    This 本文包含了一个要查看的内容列表(它是针对SQL 2000的,但它至少能让您入门)。

        2
  •  0
  •   Ben    14 年前

    显而易见的问题是,sqltest是否有一个名为“signinspection”的数据库?另外,您是否使用Windows身份验证或SQL身份验证通过SQL Management Studio登录到sqltest?我想如果这两个问题中的任何一个是问题,你会得到一个例外,但它值得检查。