KB2482977 - 修复:当应用程序在连接字符串中使用 SQL Server Native Client 10.0 OLE DB 提供程序的扩展 OLE DB 初始化属性时,会出现 10061 Winsock 错误代码

应用对象
SQL Server 2008 Enterprise SQL Server 2008 R2 Enterprise Microsoft SQL Server 2005 Service Pack 3 Microsoft SQL Server 2005 Service Pack 4

症状

请考虑以下情形:

  • 应用程序尝试使用 Microsoft SQL Server Native Client 10.0 OLE DB 提供程序连接到 Microsoft SQL Server 的实例。

  • 应用程序在连接字符串中使用扩展的 OLE DB 初始化属性。 例如,应用程序在以下连接字符串中使用 Server、 Database 和 FailOverPartner 属性:

    Provider=SQLNCLI10.1;Integrated Security=SSPI; Server =<instance_name>; Database =<database_name>; FailOverPartner=<failover_partner_name>;
    

    便笺

    • <instance_name> 是表示实例名称的占位符。
    • <database_name> 是表示数据库名称的占位符。
    • <failover_partner_name> 是一个占位符,表示故障转移伙伴的名称。

在此方案中,不会在应用程序与 SQL Server 实例之间创建连接。 此外,你还会收到 Winsock (10061 Windows 套接字) 错误代码和以下错误消息:

注意

由于目标机器主动拒绝,因此无法连接。

原因

发生此问题的原因是 SQL Server Native Client 10.0 OLE DB 提供程序中出现错误。

如果在连接字符串中使用 SQL Server Native Client 10.0 OLE DB 提供程序的扩展 OLE DB 初始化属性,则连接字符串将加密。 但是,提供程序可能不会解密扩展的属性。 例如,提供程序可能无法解密 数据源 和 初始目录 名称。 因此,您会收到“症状”部分中提到的错误。

解决方法

累积更新信息

SQL Server 2008 Service Pack 2

此问题的修补程序首次在 SQL Server 2008 Service Pack 2 的累积更新 3 中发布。 有关此累积更新包的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2498535 SQL Server 2008 Service Pack 2 累积更新程序包 3 注意 由于版本是累积的,因此每个新的修补程序版本都包含之前 SQL Server 2008 修补程序版本中包含的所有修补程序和所有安全修补程序。 Microsoft 建议考虑应用包含此修补程序的最新修补程序版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2402659 SQL Server 2008 Service Pack 2 发布之后发布的 SQL Server 2008 内部版本Microsoft为特定的 SQL Server Service Pack 创建 SQL Server 2008 修补程序。 必须将 SQL Server 2008 Service Pack 2 修补程序应用于 SQL Server 2008 Service Pack 2 的安装。 默认情况下,SQL Server Service Pack 中提供的任何修补程序都包含在下一个 SQL Server Service Pack 中。

SQL Server 2008 R2

此问题的修补程序首次在累积更新 6 中发布。 有关如何获取 SQL Server 2008 R2 的此累积更新程序包的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2489376 SQL Server 2008 R2 累积更新程序包 6 注意:由于版本是累积的,因此每个新的修补程序版本都包含之前 SQL Server 2008 R2 修补程序版本中包含的所有修补程序和安全修补程序。 建议应用包含此修补程序的最新修补程序版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

981356 在 SQL Server 2008 R2 发布之后发布的 SQL Server 2008 R2 内部版本

SQL Server 2005 Service Pack 3

此问题的修补程序首次在 SQL Server 2005 Service Pack 3 的累积更新 14 中发布。 有关此累积更新包的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2489375 SQL Server 2005 Service Pack 3 累积更新程序包 14 注意 由于版本是累积的,因此每个新的修补程序版本都包含之前 SQL Server 2005 修补程序版本中包含的所有修补程序和所有安全修补程序。 Microsoft 建议考虑应用包含此修补程序的最新修补程序版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

960598 SQL Server 2005 Service Pack 3 发布之后发布的 SQL Server 2005 内部版本Microsoft为特定的 SQL Server Service Pack 创建 SQL Server 2005 修补程序。 必须将 SQL Server 2005 Service Pack 3 修补程序应用于 SQL Server 2005 Service Pack 3 的安装。 默认情况下,SQL Server Service Pack 中提供的任何修补程序都包含在下一个 SQL Server Service Pack 中。

SQL Server 2008 Service Pack 1

  此问题的修补程序首次在 SQL Server 2008 Service Pack 1 的累积更新 12 中发布。 有关此累积更新包的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2467236 SQL Server 2008 Service Pack 1 累积更新程序包 12 注意 由于版本是累积的,因此每个新的修复程序版本都包含之前 SQL Server 2008 修复版本中包含的所有修补程序和所有安全修补程序。 Microsoft 建议考虑应用包含此修补程序的最新修补程序版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

970365 在发布 SQL Server 2008 Service Pack 1 之后发布的 SQL Server 2008 内部版本Microsoft为特定的 SQL Server Service Pack 创建 SQL Server 2008 修补程序。 必须将 SQL Server 2008 Service Pack 1 修补程序应用于 SQL Server 2008 Service Pack 1 的安装。 默认情况下,SQL Server Service Pack 中提供的任何修补程序都包含在下一个 SQL Server Service Pack 中。

SQL Server 2005 Service Pack 4

此问题的修补程序首次在 SQL Server 2005 Service Pack 4 的累积更新 2 中发布。 有关此累积更新包的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2489409 SQL Server 2005 Service Pack 4 累积更新程序包 2 注意 由于版本是累积的,因此每个新的修补程序版本都包含之前 SQL Server 2005 修补程序版本中包含的所有修补程序和所有安全修补程序。 Microsoft 建议考虑应用包含此修补程序的最新修补程序版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2485757 SQL Server 2005 Service Pack 4 发布之后发布的 SQL Server 2005 内部版本Microsoft为特定的 SQL Server Service Pack 创建 SQL Server 2005 修补程序。 必须将 SQL Server 2005 Service Pack 4 修补程序应用于 SQL Server 2005 Service Pack 4 的安装。 默认情况下,SQL Server Service Pack 中提供的任何修补程序都包含在下一个 SQL Server Service Pack 中。

修补程序信息

 Microsoft 提供了一个受支持的修补程序。 但此程序只用于解决本文中提到的问题。 仅将此修补程序应用于遇到此特定问题的系统。

如果该修补程序可供下载,则此知识库文章的顶部将出现“提供修补程序下载”部分。 如果此部分不存在,请向 Microsoft 客户服务和支持部门提交请求以获取该修补程序。

注意 如果发生其他问题或需要进行任何故障排除,您应该另行创建服务请求。 对于此特定修补程序无法解决的其他支持问题和事项,将照常收取支持费用。 若要获取 Microsoft 客户服务和支持部门的完整电话号码列表或另行创建服务请求,请访问以下 Microsoft 网站:

/contactus/?ws=support 注意 “修补程序下载可用”窗体显示了修补程序的可用语言版本。 如果您找不到需要的语言,则说明该语言版本的修补程序未提供。

先决条件

若要应用此修补程序,必须安装 SQL Server 2008 Service Pack 1 (SP1) 。

重启信息

应用此修补程序后,可能需要重启计算机。

注册表信息

应用此修补程序后,无需更改注册表。

修补程序替代信息

此修补程序不替代任何其他修补程序。

文件信息

此修补程序的英文版具有下表列出的文件属性 (或更高版本的文件属性) 。 这些文件的日期和时间以协调世界时 (UTC) 格式列出。 在查看文件信息时,文件时间将转换为本地时间。 要了解 UTC 与本地时间之间的时差,请使用“控制面板”中“日期和时间”项中的“时区”选项卡。

对于所有受支持的基于 x86 的 SQL Server 2008 版本

文件名 文件版本 文件大小 日期 时间 平台
sqlncli10.dll 2007.100.2806.0 2,560,872 2010 年 12 月 14 日 16:43 x86
Sqlncli_keyfile.dll 2007.100.2806.0 13,672 2010 年 12 月 14 日 15:30 x86

对于所有受支持的基于 x64 的 SQL Server 2008 版本

                  

文件名 文件版本 文件大小 日期 时间 平台
sqlncli10.dll 2007.100.2806.0 2,560,872 2010 年 12 月 14 日 16:43 x86
sqlncli10.dll 2007.100.2806.0 3,161,960 2010 年 12 月 14 日 23:45 x64
Sqlncli_keyfile.dll 2007.100.2806.0 14,184 2010 年 12 月 14 日 22:48 x64

对于所有受支持的基于 IA-64 的 SQL Server 2008 版本

文件名 文件版本 文件大小 日期 时间 平台
sqlncli10.dll 2007.100.2806.0 2,560,872 2010 年 12 月 14 日 16:43 x86
Sqlncli_keyfile.dll 2007.100.2806.0 13,672 2010 年 12 月 14 日 15:30 x86

                  

状态

Microsoft 已确认在 "适用于" 部分中所列的 Microsoft 产品中存在问题。

详细信息

有关连接字符串和适用于 SQL Server Native Client 的 OLE DB 提供程序的详细信息,请访问下面的 Microsoft Developer Network (MSDN) 网站:

有关连接字符串和 SQL Server Native Client 的 OLE DB 提供程序的一般信息
有关连接字符串语法的详细信息,请访问以下 MSDN 网站:

有关连接字符串语法的一般信息
有关 OLE DB 初始化属性的详细信息,请访问以下 MSDN 网站:

有关 OLE DB 初始化属性的一般信息