虚拟专用服务器上的连接字符串不工作

问题描述:

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

(这是怎么了在我的本地机器上运行)。

似乎没有任何工作。有任何想法吗?提前致谢。

+0

''providerName'缺少的方式 – Aristos

+0

您确定实例名是'SQLEXPRESS2008'吗? GoDaddy的支持不会为您提供示例连接字符串吗? –

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

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

FYI:确保你的数据库服务器身份验证是SQL Server和WindowsAuthentication模式

你也可以检查:Connection strings for SQL Server 2008欲了解更多信息。

问候

+0

这当然不适用,如果它是一个命名实例。 –

看来你不知道你是否有一个命名实例或默认实例。甚至两者之间的差异。

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

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

的SQL Server(MSSQLSERVER)

或者这样:

SQL服务器(some_name )

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

"Data Source=localhost;..." 

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

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

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

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

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

+0

非常感谢你对这个广泛的照明解释。 +1如此友善和乐于助人。现在我设法在服务器上安装并运行应用程序(即在本地使用远程桌面),这是最棘手的问题。在尝试了几个连接字符串之后,我使用了最简单的一个:。现在,使用调试器运行一切正常。但从另一台计算机使用浏览器访问网站我没有得到信息。我会继续检查 – dsb

+0

如果你在另一台电脑上,你不能说''' - 这意味着本地。你的其他服务器应该如何找到你的数据库服务器?如果你只是说出去到Internet并找到任何SQL Server,它是否也可以找到我的数据库服务器?您需要指定运行SQL Server的服务器的IP地址或完全限定的域名。所以它应该是类似于'“Data Source = 45.34.22.12 \ SQLEXPRESS2008; ...'您可能还需要进入数据库服务器并确保启用TCP/IP(在SQL Server配置管理器中),允许远程连接,并打开正确的防火墙端口(s)... –

+0

非常感谢你的所有帮助。使用调试器我发现问题是,我没有允许用户到数据库(本地工作,我可以连接Windows凭据)。对于我缺乏知识感到抱歉,我是所有这些的新手,在找到了如何定义一个用户的所有信息之后,感谢你的帮助, – dsb