使用 ADO.NET 4 连接到 SQL Server 2005 时出错



我正在尝试使用以下连接字符串连接到我们的 sql 服务器

<add name="siteDB" connectionString="Data Source=xxxxxsql_2005;Initial Catalog=Intranet;User ID=username;Password=password" providerName="System.Data.SqlClient"/>

但是我收到此错误

A connection was successfully established with the server, but then an error occurred during the pre-login handshake

仅当 Web 应用程序编译为 .net 4 时,这只是一个问题,.NET 2 似乎工作正常

我尝试了以下方法,但没有成功

TrustServerCertificate=True

在连接字符串中.. 没有快乐

也尝试过

TCP/IP protocols enabled
named pipes enabled

使用具有正确权限的新设置帐户

有什么想法吗?

谢谢

纳特

你可以

试试这个或这个(为我工作过一次):

1) 从 IIS 中删除所有 SSL 证书和加密选项 - 无论是在网站级别(例如从"默认网站")还是在虚拟目录级别。基本上,如果您启用了加密,请将所有设置恢复为原始的非加密设置。

2) 从服务器中删除所有 SSL 自签名证书。这些是SelfSSL为您生成的证书。您的服务器可能有正版证书 - 不要触摸这些证书,因为它们可能被其他软件使用,无论如何都应该是无害的。

需要从所有证书存储中删除这些证书。为此,请启动 MMC,并(一次一个)将证书管理器管理单元添加到"我的用户帐户"、"服务帐户"和"计算机帐户"。找到自签名证书的每个副本,无论它们位于何处(个人、受信任的根证书颁发机构等),并将其删除。

3)现在,尽管您已经删除了实际的证书,但SQL Server仍继续使用加密。这是因为它已在注册表中创建了证书的副本。您需要找到它们并将其删除。

这些位于:HKEY_LOCAL_MACHINE\软件\wow6432node\Microsoft\Microsoft SQLServer\MSSQL.x\MSSQLServer\SuperSocketNetLib

和/或

HKEY_LOCAL_MACHINE\软件\wow6432node\Microsoft\Microsoft SQLServer\MSSQL.x\Client\SuperSocketNetLib

4)重新启动服务器,这应该已经修复了初始错误,您会发现SQL代理正在运行并且一切恢复正常。

正如在这里找到的。

最新更新