2008-11-14 21 views
0

我的公司目前正在将一些真正的旧数据库迁移到sql server 2005.一些旧版应用程序在连接到新服务器时出现问题。连接字符串在Asp.NET 2.0中工作,可能是因为它会自动假定tcp:1433。当我指定协议和端口时,只能在ASP.NET 1.1中访问Sql Server 2005

我必须构建ASP.NET 1.1的连接字符串,这样它的工作:

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

未经协议和端口号,连接失败(“无效连接异常”)

TCP 1433和UDP 1434在我们的防火墙上打开。在SQL Server 2005远程访问已启用,同样TCPIP,SQL浏览器服务正在运行,我使用正确的登录凭据。

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

+0

你有SQL的超过1个实例上那个盒子? – 2008-11-14 08:14:19

回答

0

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

1

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

要强制其特定的端口必须去开始 - >程序 - > SQL服务器2005 - >配置工具 - > SQL Server配置管理器

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

出于某种原因,“0”表示“是的,使用动态端口”和(即场没有进入)menas“不,我会指定它自己”

然后在现场TCP端口填入1433。

在列出的所有适配器上这样做,然后重新启动SQL服务。

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

开始 - >运行 - > cmd.exe的

C:>的netstat -ano

找这样

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

的条目现在做 C:>任务列表

并从上面查找带有号码的任务。这个任务应该叫做sqlsrvr.exe。

+0

已经检查过我的TCPIP设置,它听取1433.谢谢你。 – kitsune 2008-11-14 09:58:37

相关问题