1

我正在从共享主机迁移到虚拟专用服务器(都在 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;>

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

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

4

2 回答 2

2

您似乎不知道您是否有命名实例或默认实例。甚至两者之间的差异。

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

您需要连接到您的服务器(我假设您可以远程桌面或类似的东西),然后打开控制面板 > 管理工具 > 服务。在该列表中应该有一个名为 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 浏览器服务来确定如何准确连接到它们。

于 2012-05-31T00:49:26.027 回答
0

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

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

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

您还可以查看:SQL Server 2008 的连接字符串以获取更多信息。

问候

于 2012-05-30T23:04:40.647 回答