使用ADODB.SQL Server 2014的经典ASP连接(不带TLS 1.0)


8

由于以PCI合规性名义禁用了TLS 1.0,因此我无法使32位Classic ASP应用程序正常工作。

根据MS / Stack Exchange的建议,我已经安装了:

  1. SQL Server 2014 SP1 CU1
  2. .NET Framework 4.6

这使我们的ASP.NET应用程序/ SSMS运行。但是我们使用ADODB.Connection对象的经典ASP应用程序无法正常工作。

我尝试了使用的连接字符串Provider=SQLNCLI11;,但这似乎也无济于事。共享内存提供程序仍在抱怨管道的另一端没有任何内容。错误信息:

Microsoft SQL Server本机客户端11.0错误'80004005'

共享内存提供程序:管道的另一端没有进程。

我还尝试将命名管道与连接字符串一起使用,Provider=SQLNCLI11;Server=np:\\.\pipe\MSSQL$SQLEXPRESS\sql\query;Database=northwind;Trusted_Connection=Yes;并收到以下错误消息:

Microsoft SQL Server本机客户端11.0错误'80004005'

命名管道提供者:管道的另一端没有进程。

我应该了解ADODB的补丁程序吗?我是否应该考虑以其他方式使用命名管道?(尽管对于TLS设置如何,为什么共享内存无法正常工作,我还是有些困惑)


评论更新:

Web服务器和SQL Server在同一框中。

这是一个SQLExpress命名实例。启用TLS 1.0的连接字符串为:

"Driver={SQL Server}; Server=.\SQLExpress; Database=northwind; Trusted_Connection=Yes; Integrated_Security=True;"

我也尝试过:

"Provider=SQLNCLI11; Server=.\SQLExpress; Database=northwind; Trusted_Connection=Yes;"

禁用TLS 1.0后,两者均无效。我知道Trusted_Connection / Integrated_Security是多余的,但是弄乱这些似乎也无济于事。

我已切换了TCP和命名管道的启用,禁用和顺序。上面的连接字符串中使用的管道名称直接来自该实例的“服务器配置”。我还尝试禁用共享内存以确保命名管道正常运行。我还没有尝试过TCP(好像共享内存由于TLS而不能工作,为什么要使用TCP?)共享内存和命名管道都可以在启用TLS 1.0的情况下工作。一旦我翻转注册表项以禁用TLS 1.0(并重新启动),就会出现上述错误消息。我们可能只是将这台机器放在代理后面。

禁用TLS 1.0和SSL 3.0后,SQL Server服务将无法启动

在上面我提出的问题中,CU1解决了该链接中描述的问题。SQL Server实例DOES以禁用的TLS 1.0开始(由于MS更新)。基于.NET的应用程序在SQL实例中正常工作(更新至4.6之后)。此问题特定于经典ASP(32位)应用程序。我的理解是,本机客户端也被CU1修补,因此我对为什么它不起作用感到困惑。

Answers:


2

您可能正在尝试使用32位旧版驱动程序。

尝试运行C:\ Windows \ SysWOW64 \ odbcad32.exe,以创建一个使用32位SQL Server驱动程序连接到SQL Server数据库的DSN。首先使用GUI测试连通性。

然后尝试在连接字符串中指定DSN,如下所示:

DSN=myDsn;Uid=myUsername;Pwd=;

64位版本位于:C:\ Windows \ System32 \ odbcad32.exe

PS我没有尝试过,但是32位SQL Server的提供程序名称实际上是“ SQL Server”。如果您要做的就是用SQL Server替换SQLNCLI11,那就太好了。这是我使用32位版本创建的文件DSN-注意驱动程序...

[ODBC]
DRIVER=SQL Server
UID=sa
WSID=P13-0000
APP=Microsoft® Windows® Operating System
SERVER=mcdba1

0

您需要驱动程序的ADO.NET和SQLNCLI11修复程序,才能使其与TLS 1.2一起使用。

截至1月29日,Microsoft SQL Server支持SQL Server 2008,SQL Server 2008 R2,SQL Server 2012和SQL Server 2014的TLS 1.2以及主要客户端驱动程序,例如Server Native Client,SQL Server的Microsoft ODBC驱动程序,SQL Server的Microsoft JDBC驱动程序和ADO.NET(SqlClient)。

您可以在此处阅读有关此发行版的更多信息。KB3135244中提供了支持TLS 1.2以及客户端和服务器组件下载位置的内部版本列表

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.