远程RDP登录Windows服务器后VS2017调试Excel插件触发异常求助
解决RDP远程登录Win2012R2后VS2017调试Excel插件出现RoamingCacheException的问题
我之前在远程调试Office插件时也踩过几乎一模一样的坑——RDP登录Win2012R2服务器后,普通C++项目调试完全正常,但Excel插件一启动调试就触发Roaming::RoamingCacheException,还报ntdll.dll加载错误。结合当时的排查经验,给你几个实用的解决方向:
先搞定RDP会话的漫游配置问题
这个异常的核心几乎都是用户配置文件漫游在远程会话里出了幺蛾子。Win2012R2默认可能开启了漫游配置,Excel加载插件时会尝试访问漫游缓存,但RDP会话的权限或路径经常出问题。你可以这样操作:- 运行
gpedit.msc打开本地组策略编辑器 - 定位到
计算机配置>管理模板>系统>用户配置文件 - 找到「允许使用漫游用户配置文件」,设为已禁用
- 重启RDP服务或者重新登录会话,再试调试
- 运行
给Excel加启动参数绕开漫游配置
直接启动excel.exe会默认调用漫游配置,试试给它加参数强制用本地配置:- 先在VS项目的「调试>命令参数」里加
/safe,测试安全模式下能不能正常启动调试(排除其他第三方插件干扰) - 如果安全模式没问题,换成
/n(不加载其他插件,只启动干净的Excel),或者手动指定本地配置路径:/p "C:\Users\你的用户名\AppData\Local\Microsoft\Office"
- 先在VS项目的「调试>命令参数」里加
检查ntdll.dll的完整性和权限
加载ntdll.dll出错要么是文件损坏,要么是远程会话权限不够:- 用管理员权限开命令提示符,跑
sfc /scannow扫描修复系统文件,重点修复ntdll.dll - 去
C:\Windows\System32找到ntdll.dll,右键看权限,确保当前RDP用户有「读取和执行」的权限
- 用管理员权限开命令提示符,跑
换个身份启动调试
远程会话下普通用户权限经常卡壳,试试这两种方式:- 右键VS2017,选「以管理员身份运行」,再启动调试
- 在项目调试属性的「调试>身份」里,设置为「本地系统账户」(记得勾选「允许调试权限」),不过这个权限比较高,用完记得改回来
核对Office版本和插件注册
别忽略最基础的匹配问题:- 服务器是64位,你的插件如果是64位,必须装64位Excel;如果是32位插件,要装32位Office,不然加载肯定出错
- 用管理员权限开命令提示符,导航到插件DLL目录,跑
regsvr32 你的插件.dll(64位插件要用C:\Windows\SysWOW64\regsvr32.exe),确保注册成功没报错
内容的提问来源于stack exchange,提问作者athos
相关产品推荐
相关产品推荐

