0

我的公司目前正在将他们的一些真正旧的数据库迁移到 sql server 2005。一些旧应用程序在连接到新服务器时出现问题。连接字符串在 Asp.NET 2.0 中有效,可能是因为它自动假定为 tcp:1433。

我必须在 ASP.NET 1.1 中构造这样的连接字符串才能使其工作:

"Server=tcp:my.server.com,1433;..."

没有协议和端口,连接失败(“无效连接异常”)

TCP 1433 和 UDP 1434 在我们的防火墙上是开放的。在 SQL Server 2005 上启用了远程访问,TCPIP 也是如此,SQL Browser 服务正在运行,我使用正确的登录凭据。

任何想法为什么我不能只指定没有协议和端口号的服务器名称?

4

3 回答 3

1

IIRC SQL Server 2005 默认查找任何可用的旧端口。在我的笔记本电脑上,这意味着端口 1212。

要将其强制到特定端口,您必须转到“开始”->“程序”->“SQL Server 2005”->“配置工具”->“SQL Server 配置管理器”

从这里您必须转到 SQL Server 2005 网络配置->(服务名称)的协议->右键单击 TCP/IP->属性->选择选项卡“IP 地址”并将 TCP 动态端口设置为 .

出于某种原因,“0”表示“是的,使用动态端口”并且(即在字段中没有条目)意味着“不,我将自己指定”

然后用 1433 填写字段 TCP 端口。

对列出的所有适配器执行此操作,然后重新启动 SQL 服务。

您现在可以通过执行以下操作来检查服务是否确实在正确的端口上

开始->运行->cmd.exe

C:>netstat -ano

寻找这样的条目

 local address         <stuff>           PID
 0.0.0.0:1433                            <some number>

现在做 C:>tasklist

并使用上面的数字查找任务。此任务应称为 sqlsrvr.exe 之类的名称。

于 2008-11-14T09:15:39.763 回答
0

检查 ASP.NET 机器上“SQL 配置管理器”中的“SQL Native Client 配置”设置。默认连接设置在那里设置。还可以尝试弄乱 MDAC 配置:

http://msdn.microsoft.com/en-us/library/ms131035.aspx

于 2008-11-16T08:28:03.650 回答
0

也许您的 SQL Server 配置为多协议,并且它尝试首先使用其他协议并且失败,可能是出于某种安全原因(应用程序在 IIS 中运行的帐户)。只是一个猜测。

于 2008-11-14T08:27:42.873 回答