Windows 8.1、Windows Server 2012 R2 和 Windows Server 2012 .NET Framework 4.5.2 的 12 月安全和质量汇总3210137和3210138中的已知问题
本文可帮助你解决应用程序连接到同一计算机上的 Microsoft SQL Server 实例时出现的问题。
适用于:.NET Framework 3.5 Service Pack 1
原始 KB 编号: 3214106
摘要
2016 年 12 月 13 日安全和质量汇总更新3210137和3210138包含一个已知问题,该问题影响在 Windows 8.1、Windows Server 2012 R2 和 Windows Server 2012 上运行的 .NET Framework 4.5.2。 此问题也出现在 2016 年 11 月 15 日汇总更新中,这些更新已被 12 月更新取代。 本文包含此问题的解决方法。
症状
连接到同一计算机上的 Microsoft SQL Server 实例的应用程序会生成以下错误消息:
提供程序:共享内存提供程序,错误:15 - 不支持函数
要解决此问题,请使用下列方法之一。
解决办法 1
在服务器端禁用共享内存和命名管道协议,以强制仅 TCP 连接SQL Server。 为此,请按照下列步骤操作。
重要
在禁用其他协议之前,请确保已启用 TCP/IP 协议。
启动 SQL Server 配置管理器。
展开“SQL Server 网络配置”节点。
选择要连接到的SQL Server>实例的“协议<SQLServer_instance”节点。
右键单击“ 共享内存”,然后选择“ 禁用”。
如果已启用命名管道,请对 命名管道重复步骤 4。
注意
TCP/IP 应该是此列表中唯一已启用的协议。
选择“SQL Server服务”节点。
右键单击已更新的 SQL Server 实例。
选择“重启”。
解决办法 2
在服务器上创建别名以强制本地应用程序的 TCP 协议。 为此,请参阅以下 MSDN 和 TechNet 主题:
解决方法 3
从客户端配置工具 (32 位和 64 位) 禁用共享内存。 为此,请按照下列步骤操作:
通过键入 cliconfg.exe在服务器上启动客户端配置工具。
如果已选中,请清除“启用共享内存协议检查”框。
注意
在 64 位服务器上,如果运行连接到SQL Server的 32 位应用程序,则必须使用文件夹中
C:\Windows\SysWOW64
的 32 位客户端配置工具运行此过程。
适用对象
此问题适用于在 Windows 8.1、Windows Server 2012 R2 或 Windows 2012 上安装 .NET Framework 4.5.2,并且已应用以下 2016 年 12 月更新之一的用户:
- Windows 8.1 上的 .NET Framework 4.5.2 的安全和质量汇总和Windows Server 2012 R2 (KB3210137)
- Windows Server 2012 (KB3210138) 上.NET Framework 4.5.2 的安全和质量汇总
此问题也存在于以下 (现已) 2016 年 11 月质量汇总预览版更新中被取代:
- 2016 年 11 月 Windows 8.1 和 Server 2012 R2 上.NET Framework 3.5、4.5.2、4.6、4.6.1 的质量汇总预览 (KB3196684)
- 2016 年 11 月 .NET Framework 3.5、4.5.2、4.6、4.6.1 的质量汇总预览Windows Server 2012 (KB3195383)
- 2016 年 11 月 Windows 7 SP1 和 Windows Server 2008 R2 SP1 .NET Framework 3.5.1、4.5.2、4.6、4.6.1 的质量汇总预览 (KB3196686)
- 2016 年 11 月 Windows Vista SP2 和 Windows Server 2008 SP2 上 .NET Framework 2.0 SP2、4.5.2、4.6 的质量汇总预览 (KB3195382)
解决方案
此问题已在以下更新中得到解决:
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈