在从asp.net 1.1连接到SQL Server 2005时设置TDS client_版本

在从asp.net 1.1连接到SQL Server 2005时设置TDS client_版本,asp.net,sql-server,Asp.net,Sql Server,我正试图调试一个与这个老问题类似的问题: 复杂的存储过程在通过.NET SQL客户端从ASP.NET 1.1运行时总是超时,但在SQL Management Studio中运行时没有问题。我查看了sys.dm_exec_会话,以了解各个连接的设置。出于某种原因,来自ASP.NET应用程序的连接使用的是client_version 4 SQLServer 2000 sp1,而management studio连接使用的是version 5 SQLServer 2005 我假设我必须更改连接字符串以

我正试图调试一个与这个老问题类似的问题:

复杂的存储过程在通过.NET SQL客户端从ASP.NET 1.1运行时总是超时,但在SQL Management Studio中运行时没有问题。我查看了sys.dm_exec_会话,以了解各个连接的设置。出于某种原因,来自ASP.NET应用程序的连接使用的是client_version 4 SQLServer 2000 sp1,而management studio连接使用的是version 5 SQLServer 2005

我假设我必须更改连接字符串以提示ASP.NET使用正确的版本,但我不知道如何或在何处这样做。奇怪的是,谷歌毫无帮助。。。我可以指定ASP.NET应用程序应该在某处使用的客户端版本吗

非常感谢您的帮助


PS。。。两个连接的arithabort设置最初也是不同的,但不幸的是,将它们都设置为on似乎没有帮助。

问题在于.NET SqlCommand对象内置了默认的30秒命令超时。SQL Server Management Studio为其设置了无限超时。您可以通过在执行命令之前更改SqlCommand.CommandTimeout值来更改应用程序的超时值:

从SSMS执行查询需要多长时间?30秒的查询是对Web应用程序的长查询,因此您可以考虑对代码进行调整,以便在更改超时之前运行时间不长。

客户端版本基于应用程序计算机上安装的内容。如果下载并安装2005 SQL本机客户端,它将更新正在使用的客户端。SQL本机客户端位于安装程序CD上,或者可以从2005功能包单独免费下载:


根据SQL Management Studio中的参数,查询只需几秒钟,通常为3-5秒,因此这不是超时。开发环境是一台机器,因此已经安装了SQL2005。我可以尝试重新安装2005 SQL本机客户端,看看是否有帮助。