You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

古老ASP站点Global.asa连接SQL Server 2022报错0x80040e21原因咨询

ASP站点连接SQL Server 2022出现0x80040e21错误的分析

问题背景

我有一个简易的老式ASP站点,Global.asa文件仅包含数据库连接打开操作,无SSIS包类的复制操作,仅在Global.asa中首次尝试连接SQL Server 2022时出现问题。

代码片段

Sub Session_OnStart() 
...
cnn.Open DSN_Name

完整错误信息

英文原文

Unhandled exception at line 134, column 2 in http://localhost:80/LM/W3SVC/1/ROOT/global.asa
0x80040e21 - Microsoft OLE DB Service Components: Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.

中文翻译

未处理的异常发生在 http://localhost:80/LM/W3SVC/1/ROOT/global.asa 的第134行第2列
0x80040e21 - Microsoft OLE DB服务组件:多步骤OLE DB操作生成错误。请检查每个OLE DB状态值(如果可用)。未执行任何操作。

ODBC数据源配置

Microsoft ODBC Driver for SQL Server Version 18.02.0001
Data Source Name: XXXXXXXXX
Data Source Description: 
Server: Localhost
Use Integrated Security: No
Database: XXXXXXXXXX
Language: (Default)
Data Encryption: Optional
Trust Server Certificate: Yes
Multiple Active Result Sets(MARS): No
Mirror Server: 
Translate Character Data: Yes
Log Long Running Queries: Yes
Query Log File: F:\TMP2\XXXXXXXX-QUERY.LOG
Query Log Time: 30000
Log Driver Statistics: Yes
Statistics File: F:\TMP2\XXXXXXXXX-STATS.LOG
Use Regional Settings: No
Use ANSI Quoted Identifiers: Yes
Use ANSI Null, Paddings and Warnings: Yes
Use FMTONLY: Yes

SQL Server版本

Microsoft SQL Server 2022 (RTM-GDR) (KB5021522) - 16.0.1050.5 (X64)   Jan 23 2023 17:02:42   Copyright (C) 2022 Microsoft Corporation  Developer Edition (64-bit) on Windows 10 Pro 10.0 <X64> (Build 22621: ) 

错误含义

0x80040e21是OLE DB服务组件抛出的多步骤操作错误,意思是在建立数据库连接的一系列关联操作中,某一个或多个环节返回了异常状态,导致整个连接流程中断,且没有完成任何实际的数据库操作。这类错误不是单一操作直接失败,而是多步骤协作过程中出现了状态不匹配或参数冲突。

引发错误的可能原因

  • ODBC驱动版本兼容性问题:你使用的ODBC Driver 18 for SQL Server是较新版本,而老式ASP基于VBScript和OLE DB桥接组件(MSDASQL),可能无法适配驱动的新特性(如加密协商、证书验证逻辑),进而触发多步骤操作异常。
  • DSN配置与SQL Server安全设置冲突:SQL Server 2022默认可能强制加密连接,而DSN中设置Data Encryption: Optional,两者在加密协商过程中出现不兼容,导致连接步骤出错。
  • FMTONLY选项干扰:DSN中启用了Use FMTONLY: Yes,该选项用于仅返回查询元数据,但在ASP会话启动阶段建立连接时,可能触发不必要的元数据请求,打乱了正常的连接流程。
  • 身份验证配置问题:DSN设置Use Integrated Security: No,但如果未正确配置SQL Server账号的用户名和密码,或者ASP进程没有权限读取DSN中存储的凭据,会导致身份验证步骤失败,进而引发多步骤错误。
  • OLE DB与ODBC桥接组件异常:ASP通过MSDASQL(OLE DB Provider for ODBC Drivers)调用ODBC驱动,这个桥接组件可能无法正确传递ODBC Driver 18的配置参数,导致连接过程中出现状态不一致。

内容的提问来源于stack exchange,提问作者John14

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 02:05:36