当我指定协议和端口时,只能在ASP.NET 1.1中访问Sql Server 2005

时间:2008-11-14 07:33:58

标签: asp.net sql-server-2005 connection-string asp.net-1.1

我的公司目前正在将一些真正旧的数据库迁移到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浏览器服务正在运行,我使用正确的登录凭据。

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

3 个答案:

答案 0 :(得分:1)

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

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

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

由于某种原因,“0”表示“是,使用动态端口”和(即没有在字段中输入)menas“不,我会自己指定”

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

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

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

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

C:> netstat -ano

寻找像这样的条目

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

现在做 C:&GT;任务列表

并使用上面的数字查找任务。应该像sqlsrvr.exe那样调用此任务。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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