ASP连接到SQL 2008命名实例

时间:2009-05-09 19:19:41

标签: sql asp-classic

我有一台运行三个实例的SQL 2008服务器。为每个实例分配一个唯一的IP地址并侦听端口1433.仅启用TCPIP。

我的所有ASP.Net应用程序都使用IP地址成功连接,连接字符串类似于:

User ID=SQLUser;Password=userpass;Database=TestDB;Data Source=sqlserver

我的ASP应用程序只会连接到默认实例;每当我尝试连接到另一个实例时,我都会收到此错误:

Microsoft OLE DB Provider for ODBC Drivers error '80004005' <br />
[Microsoft][ODBC SQL Server Driver][DBNETLIB]Invalid connection.

ASP连接字符串是这样的:

driver={SQL Server};server=sqlserver;uid=SqlUser; pwd=userpass; database=TestDB

我暂时关闭了IIS和SQL Server上的Windows防火墙。 SQL Server和IIS服务器之间没有任何其他防火墙。 SQL Browser正在SQL Server上运行。我尝试修改ASP连接字符串以包含实例名称,如:

driver={SQL Server};server=sqlserver/InstanceName;uid=SqlUser;pwd=userpass;database=TestDB

但是我得到了同样的错误。

有没有办法从ASP连接到命名实例?

4 个答案:

答案 0 :(得分:2)

像这样编写服务器名称:

server=sqlserver\InstanceName

另外,请检查1433上可能没有的端口号。

相关问题:

答案 1 :(得分:1)

编辑:Sql Server名称不是UNC;)

尝试使用\而不是/ like:

mysqlserver\myinstance

我个人总是尝试包含端口。它保存了一个往返,客户端试图找出端口号:

server=mysqlserver\myinstance,1433;uid=SqlUser;pwd=userpass;database=TestDB

有趣的是,数据库是初始目录的同义词吗?

答案 2 :(得分:1)

这是纯粹的猜测。

从ASP.net连接到服务器时,您可能正在使用SQL OLE DB提供程序 然而,当涉及到ASP时,您正在使用OLEDB for ODBC(或者它选择这种连接来根据您的连接字符串选择它)。

是这样吗?
如果是这样,它可能是连接字符串的问题。例如,请参阅www.connectionstrings.com上的SQL Server连接字符串。

如果您使用的是ODBC,请确保安装了正确的驱动程序集以连接到SQL Server 2008

这有帮助吗?

编辑:我认为在使用ADO使用它时,你必须在ASP中更改连接字符串 http://www.connectionstrings.com/sql-server-2008#20

答案 3 :(得分:0)

尝试提供IP地址。我怀疑当它解析服务器的名称时,它获取默认实例的IP地址。由于您已将它们绑定到单独的IP地址,因此您需要提供IP地址,或者,如果IP地址解析为其他主机名,请使用与该IP地址一起使用的主机名。我认为你不需要指定实例名称,但我不确定。我们的生产服务器上有两个实例 - 一个用于公共Web应用程序,另一个用于非公共Web应用程序。每个都绑定到一个单独的IP地址,但地址反向映射到不同的名称。连接到每个实例时,我只需要使用正确的服务器名称。