【发布时间】:2020-05-06 17:46:06
【问题描述】:
我正在构建一台装有 Windows10 和 SQL Server 2017 的新机器,我很难让我的旧 ASP 应用程序正确连接。
连接字符串如下所示:
"driver={SQL Server};uid=USERNAME;pwd=PASSWORD;server=LocalServer;Database=LocalDB;"
我可以使用这样的连接字符串进行连接:
"Provider=SQLNCLI11;Server=LocalServer;Database=LocalDB;Integrated Security=SSPI;DataTypeCompatibility=80;MARS Connection=True;"
...但这会导致现有代码的方式及其与存储过程的交互方式出现一堆错误,因此我试图让第一个连接字符串正常工作。
我用那个字符串得到的错误是这样的:
用于 ODBC 驱动程序的 Microsoft OLE DB 提供程序错误“80004005”
[Microsoft][ODBC SQL Server 驱动程序][共享内存]SSL 安全错误
/Codeshare/ServerSide/conx_current.asp,第 8 行
该代码如下所示:
dim sqlconn
set sqlconn = server.CreateObject("ADODB.CONNECTION")
dim cn : cn = getConx("current")
sqlconn.open cn
... 其中 getConx("current") 只是从上面返回连接字符串
如果有帮助,如果我尝试使用 SQL Server 或 SQL Server Native Client 11.0 驱动程序创建 ODBC 连接,我会收到相同的错误消息。
TIA
【问题讨论】:
-
试用新的 MSOLEDBSQL 驱动程序。见docs.microsoft.com/en-us/sql/ado/guide/appendixes/…
-
对我来说,问题似乎出在数据库安全性上——新的连接字符串意味着当前的 Windows 帐户用于对数据库进行身份验证,如果它没有映射到数据库中进行访问,那么你会出错。 support.microsoft.com/de-de/help/306586/…
-
您可以通过 TCP/IP 连接到 SQL Server 还是共享内存是唯一的选择? TCP/IP 通常被禁用,除非您选择启用它