【问题标题】:connection string on virtual dedicated server not working虚拟专用服务器上的连接字符串不起作用
【发布时间】:2012-05-30 22:44:17
【问题描述】:

我正在从共享主机迁移到虚拟专用服务器(都在 GoDaddy)。 令人惊讶的是,到目前为止一切都很好。但是,现在我的 Web 应用程序似乎无法连接到数据库(我在服务器上创建的)。

我尝试了几个选项,包括为其提供服务器名称等,例如:

<add name="dbname" connectionString="Data Source=servername\SQLEXPRESS2008;Initial Catalog=theDB;User Id=servername\usernameAcceptedByMangmentStudio;Password=mypwd; Trusted_Connection=False;"/>

还有:

<add name="dbname" connectionString="Data Source=.\SQLEXPRESS2008;Initial Catalog=theDB;User Id=usernameAcceptedByMangmentStudio;Password=mypwd; Trusted_Connection=False;"/>

还有:

<add name="dbname" connectionString="Data Source=servername\SQLEXPRESS2008;Initial Catalog=theDB; Integrated Security=True;>

(这就是它在我的本地机器上的工作方式)。

似乎没有任何效果。有任何想法吗?提前致谢。

【问题讨论】:

  • 顺便说一下providerName 不见了
  • 您确定实例名称是SQLEXPRESS2008? GoDaddy 的支持是否没有为您提供示例连接字符串?

标签: asp.net sql-server-2008 connection-string vds


【解决方案1】:

您似乎不知道您是否有命名实例或默认实例。甚至两者的区别。

首先我将解释确定您拥有哪些的最快方法,然后我将解释差异。

您需要连接到您的服务器(我假设您可以远程桌面或类似的东西),然后打开控制面板 > 管理工具 > 服务。在该列表中应该有一个名为 SQL Server 的项目,它看起来像这样:

SQL 服务器 (MSSQLSERVER)

或者这个:

SQL Server (some_name)

前者是默认实例。如果这是您所看到的,那么连接字符串应该是:

"Data Source=localhost;..."

后者是一个命名实例。如果这是您所看到的,您的连接字符串应该是:

"Data Source=localhost\some_name;..."

如果您同时看到两者,那么您需要告诉我们您最初是如何连接到此实例以创建数据库的(并且您需要决定要使用哪一个,因为您可能不需要两者)。

如果这没有帮助,您需要比“不起作用”更具体。您无法连接到服务器或数据库吗?实际的错误信息是什么?创建数据库时,是否使用了 User Instances / AttachDbFileName 功能?您能否在 Management Studio 中显示成功的连接对话框的屏幕截图?您的应用程序是在服务器上还是在本地计算机上?您是否可以指定 IP 地址而不是各种本地引用?您是否就您的问题联系过 GoDaddy 支持?它们比编程问答网站更能帮助您,因为它们可以在 10 秒内连接到您的服务器,并准确告诉您应该如何引用 SQL Server 实例。

至于区别,当您需要安装多个单独的 SQL Server 实例时,通常使用命名实例。这通常不是生产机器的要求;在必须测试多个版本、模拟不同环境或临时迁移或并行升级期间的开发机器上更为常见。默认实例在端口 1433 上进行开箱即用侦听。命名实例在其他端口上运行,并且通常使用远程计算机的 SQL Browser 服务来确定如何准确连接到它们。

【讨论】:

  • 非常感谢您提供如此广泛的启发性解释。 +1 非常友善和乐于助人。现在我设法在服务器上安装和运行应用程序(即,在本地使用远程桌面),这是最奇怪的事情。在尝试了几个连接字符串后,我使用了最简单的一个:。现在,使用调试器运行一切正常。但是从另一台计算机上使用浏览器访问该网站我没有得到信息。我会继续签到
  • 如果你在另一台电脑上,你不能说.——这意味着本地。您的其他服务器应该如何找到您的数据库服务器?如果您只是说去 Internet 查找任何 SQL Server,它是否也能找到我的数据库服务器?您需要指定运行 SQL Server 的服务器的 IP 地址或完全限定域名。所以它应该类似于"Data Source=45.34.22.12\SQLEXPRESS2008;... 您可能还需要进入数据库服务器并确保启用 TCP/IP(在 SQL Server Config Mgr 中),允许远程连接,并打开正确的防火墙端口。 .
  • 非常感谢您提供的所有帮助。使用调试器我发现问题是我没有允许用户访问数据库(在本地工作我可以使用 Windows 凭据连接)。对不起,我缺乏知识,我对这一切都是新手。在找出如何定义用户之后,现在一切正常。非常感谢,你帮了我很大的忙!
  • @user739809 很高兴为您提供帮助。你应该接受答案,我们都可以继续前进。 :-)
【解决方案2】:

如果您的数据库有用户名和密码(SQL Server 身份验证),只需使用这个:

<add name="dbname" connectionString="Data Source=yourServerName;Initial Catalog=YourDB;User ID=YouruserId;Password=YourPassWord" providerName="System.Data.SqlClient"/>

仅供参考:确保您的数据库服务器身份验证是 SQL Server 和 Windows 身份验证模式

您也可以查看:Connection strings for SQL Server 2008 了解更多信息。

问候

【讨论】:

    猜你喜欢
    • 2016-03-25
    • 2021-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-16
    • 2020-05-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多