С отключенным TLS 1.0 во имя соответствия PCI я не могу заставить работать 32-битное приложение Classic ASP.
В соответствии с рекомендациями MS / Stack Exchange я установил:
- SQL Server 2014 с пакетом обновления 1 (SP1) CU1
- .NET Framework 4.6
Это запустило наши приложения ASP.NET / SSMS. Но наше приложение Classic ASP, которое использует ADODB.Connection
объект, не работает.
Я пробовал строку подключения, которая использует Provider=SQLNCLI11;
, но это, похоже, тоже не помогает. Поставщик Shared Memory все еще жалуется, что на другом конце канала ничего не находится. Сообщение об ошибке:
Собственный клиент 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)
Обновления от комментариев:
Веб-сервер и SQL-сервер находятся в одном окне.
Это 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 (и перезагрузить компьютер), появляются указанные выше сообщения об ошибках. Мы, вероятно, просто собираемся поставить эту машину за прокси.
Служба сервера SQL не запускается после отключения TLS 1.0 и SSL 3.0
Проблема, описанная в этой ссылке, решена CU1 в моем изложенном выше вопросе. Экземпляр SQL Server запускается с отключенным TLS 1.0 (благодаря обновлению MS). Приложения на основе .NET прекрасно работают с экземпляром SQL (после обновления до 4.6). Этот вопрос относится к классическому ASP (32-разрядному) приложению. Насколько я понимаю, собственный клиент также пропатчен CU1, поэтому я не понимаю, почему это не работает.