Windows 11更新后Classic ASP混合VBScript/JScript兼容性问题求助
Windows 11更新后Classic ASP混合VBScript/JScript脚本引擎崩溃问题求助
问题现象
更新Windows 11至2025年6月2日版本后,IIS上运行的Classic ASP应用出现严重随机崩溃,此前该应用已稳定运行多年。错误信息如下:
Active Server Pages error 'ASP 0240' Script Engine Exception A ScriptEngine threw exception 'C0000005' in 'IActiveScript::SetScriptState()' from 'CActiveScriptEngine::ReuseEngine()'
Windows应用事件日志中同步出现类似消息:
Eccezione del modulo di script 'C0000005' in 'IActiveScript::SetScriptState()' da 'CActiveScriptEngine::ReuseEngine()'
上述问题导致大量请求返回HTTP 1.1/500内部服务器错误,页面加载随机失败。
环境与脚本架构
- 运行环境:IIS 10 / Classic ASP / Windows 11
- 脚本模式:ASP页面混合使用
<% ... %>(VBScript)与<script runat="server" language="JScript">...</script>代码段,其中JScript负责JSON解析(基于Douglas Crockford的json2.js移植版)、字符串操作等辅助功能,VBScript处理核心业务逻辑;该混合模式在之前所有Windows/IIS版本中均正常运行。
已尝试方案与临时Workaround
- 启用IIS中「Execute In MTA」(路径:COM+属性>ASP>「Execute In MTA」=True)可暂时规避崩溃,但会引入会话/线程安全问题,且部分遗留COM对象出现不稳定情况
- 尝试卸载更新补丁KB5054979和KB5058499,问题未得到解决
- 无法通过2025-06-01的系统还原点回滚系统,当前找不到系统还原界面
- 禁用JScript或全量改写为VBScript因项目规模与复杂度不可行
关键发现
- 该问题属于Windows 11的兼容性回归或破坏性变更,相同代码库在Windows 10、Windows Server 2019/2022上运行完全正常
- 混合VBScript与JScript的Classic ASP应用已基本处于不稳定状态,JScript代码无法在VBScript页面中可靠执行
- 推测底层脚本引擎变更导致双引擎加载时的资源管理(
IActiveScript::SetScriptState/ReuseEngine)失败,大量依赖该混合模式的开源Classic ASP模块(如各类JSON解决方案)均受影响
求助问题
- 是否有针对该问题的永久解决方案或微软官方补丁?
- 能否在当前Windows 11版本中继续在Classic ASP中同时使用VBScript和JScript?
- 微软是否已确认此为漏洞或计划发布修复?
问题影响
数千个业务关键型长期运行的Classic ASP应用依赖该脚本组合(尤其是JSON解析场景),此次无预警的兼容性破坏且未提供迁移工具,给无法短期内重写应用的企业造成重大阻碍;临时方案「Execute In MTA」风险极高,会给未设计多线程执行的应用带来并发与状态一致性问题。
内容的提问来源于stack exchange,提问作者omerix
相关产品推荐
相关产品推荐

