升级MIP SDK至v1.17后创建MIPContext时触发AccessViolationException问题咨询
各位好,我遇到了一个升级MIP SDK后的棘手问题,想向大家求助:
我们有一个以Windows服务形式运行的本地.NET Framework控制台应用,核心是通过MIP SDK实现文件读取和标签打标功能。近期我们从已稳定运行的v1.14.128版本升级到最新v1.17.158版本后,在创建MIP上下文对象的环节触发了未处理的AccessViolationException,直接导致进程崩溃。
问题排查过程
- 我们测试了多组SDK版本,确认问题是从v1.16升级到v1.17版本后引入的:所有v1.17系列版本都会触发该异常,但v1.16.149版本完全正常运行。
- 触发异常的核心代码如下,其中
appInfo对象的配置在之前所有SDK版本中均验证有效:
var mipConfiguration = new MipConfiguration(appInfo, "mip_data", LogLevel.Info, false, CacheStorageType.InMemory) { DiagnosticOverride = diagnosticConfiguration }; _mipContext = Microsoft.InformationProtection.MIP.CreateMipContext(mipConfiguration);
错误日志详情
Windows事件日志捕获到的错误及堆栈跟踪如下:
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.AccessViolationException
at Microsoft.InformationProtection.Internal.SdkWrapperPINVOKE.MipContext_Create__SWIG_1(System.Runtime.InteropServices.HandleRef)
at Microsoft.InformationProtection.Internal.MipContext.Create(Microsoft.InformationProtection.Internal.MipConfiguration)
at Microsoft.InformationProtection.Utils.MIPHelper.CreateMipContext(Microsoft.InformationProtection.MipConfiguration)
从堆栈信息来看,异常发生在调用底层C代码创建MIP Context的环节。我们查阅了v1.17.137的发布说明,里面仅提到MSCV版本的更新,未发现其他与C逻辑相关的变更记录。
环境信息
- 涉及操作系统:Windows Server 2016、2019、2022,所有环境均已部署.NET Framework 4.8
- 问题在多个独立部署环境中均复现
补充更新
我们后续发现只有当应用以64位模式编译时才会触发该异常,如果切换为32位编译,应用就能正常运行。
想请教大家:我们是否遗漏了v1.17版本SDK的某些环境前置要求?或者有没有其他开发者遇到过类似问题,有没有可行的修复方案?毕竟这个问题影响面较广,我有点疑惑为什么预发布阶段没被发现,所以也想确认是不是我们自身的配置存在疏漏。
内容来源于stack exchange

