TLS 1.0 étant désactivé au nom de la conformité PCI, je ne parviens pas à faire fonctionner une application ASP classique 32 bits.
Selon les recommandations MS / Stack Exchange, j'ai installé:
- SQL Server 2014 SP1 CU1
- .NET Framework 4.6
Cela a permis à nos applications ASP.NET / SSMS de fonctionner. Mais notre application Classic ASP, qui utilise un ADODB.Connection
objet ne fonctionne pas.
J'ai essayé une chaîne de connexion qui utilise Provider=SQLNCLI11;
, mais cela ne semble pas aider non plus. Le fournisseur de mémoire partagée se plaint toujours que rien ne se trouve à l'autre bout du tuyau. Message d'erreur:
Erreur Microsoft SQL Server Native Client 11.0 «80004005»
Fournisseur de mémoire partagée: aucun processus n'est à l'autre extrémité du canal.
J'ai également essayé d'utiliser des canaux nommés avec la chaîne de connexion Provider=SQLNCLI11;Server=np:\\.\pipe\MSSQL$SQLEXPRESS\sql\query;Database=northwind;Trusted_Connection=Yes;
et j'ai reçu ce message d'erreur:
Erreur Microsoft SQL Server Native Client 11.0 «80004005»
Fournisseur de tuyaux nommé: aucun processus n'est à l'autre extrémité du tuyau.
Existe-t-il un correctif pour ADODB que je devrais connaître? Dois-je envisager d'utiliser des canaux nommés d'une autre manière ou similaire à la place? (même si je suis un peu perplexe quant aux raisons pour lesquelles la mémoire partagée ne fonctionne pas, quels que soient les paramètres TLS)
Mises à jour des commentaires:
Le serveur Web et SQL Server sont sur la même boîte.
Il s'agit d'une instance nommée SQLExpress. La chaîne de connexion fonctionnant avec TLS 1.0 activé est:
"Driver={SQL Server}; Server=.\SQLExpress; Database=northwind; Trusted_Connection=Yes; Integrated_Security=True;"
J'ai aussi essayé:
"Provider=SQLNCLI11; Server=.\SQLExpress; Database=northwind; Trusted_Connection=Yes;"
Aucun ne fonctionne une fois que TLS 1.0 est désactivé. Je sais que Trusted_Connection / Integrated_Security est redondant, mais jouer avec ces derniers ne semble pas aider non plus.
J'ai basculé l'activation, la désactivation et la commande pour les canaux TCP et nommés. Le nom du canal utilisé dans la chaîne de connexion ci-dessus provient directement de la configuration du serveur pour cette instance. J'ai également essayé de désactiver la mémoire partagée pour m'assurer que les canaux nommés fonctionnent. Je n'ai pas essayé TCP (comme si la mémoire partagée ne fonctionnait pas à cause de TLS, pourquoi TCP?) La mémoire partagée et les canaux nommés fonctionnent tous les deux avec TLS 1.0 activé. Dès que je retourne la clé de registre pour désactiver TLS 1.0 (et redémarrer), les messages d'erreur ci-dessus se produisent. Nous allons probablement mettre cette machine derrière un proxy.
Le service serveur SQL ne démarre pas après la désactivation de TLS 1.0 et SSL 3.0
Le problème décrit dans ce lien est traité par CU1 dans ma question posée ci-dessus. L'instance de SQL Server démarre avec TLS 1.0 désactivé (grâce à la mise à jour MS). Les applications basées sur .NET fonctionnent très bien avec l'instance SQL (après la mise à jour vers 4.6). Cette question est spécifique à une application ASP classique (32 bits). Ma compréhension est que le client natif est également corrigé par CU1, d'où ma confusion quant à la raison pour laquelle cela ne fonctionne pas.