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

升级2sxc至17.9/18.6.1后DNN编辑模式失效(类型加载异常)

升级2sxc至17.9/18.6.1后DNN 9.11.2编辑模式崩溃,TypeLoadException错误

问题描述

在DNN 9.11.2环境下,先后将2sxc从17.8版本升级到17.9,再升级至18.6.1后,编辑模式无法正常工作,日志中立即抛出以下错误:

System.TypeInitializationException:
DotNetNuke.ExtensionPoints.ExtensionPointManager
---> System.TypeLoadException:
Could not load type ToSic.Eav.Documentation.PublicApi
from assembly ToSic.Eav.Core, Version=17.9.0.0

预期行为:编辑模式正常打开,可编辑内容
实际行为:编辑模式直接崩溃,抛出上述错误
已尝试的解决方法:

  • 重新部署程序集(清空bin文件夹并复制全新DLL)
  • 检查并清理遗留的旧版本ToSic.Eav.Core.dll
  • 清除站点缓存并重启站点

问题:升级2sxc后出现该TypeLoadException的原因是什么?如何修复以恢复编辑模式?


原因分析

  1. 版本绑定混乱:DNN程序集加载器仍尝试加载17.9.0.0版本的ToSic.Eav.Core.dll,但该版本中ToSic.Eav.Documentation.PublicApi类型已被移除、重命名或修改,导致加载失败。
  2. 跨版本升级残留:从17.8直接跨版本升级到18.6.1时,中间版本的依赖未被完全清理,部分关联程序集未正确替换。
  3. 扩展点缓存残留:ExtensionPointManager初始化失败,说明DNN的扩展点注册缓存未彻底清除,仍保留指向旧2sxc类型的引用。

修复步骤

1. 彻底清理程序集与缓存

  • 停止DNN站点,删除bin文件夹内所有ToSic.*开头的DLL文件。
  • 从2sxc 18.6.1安装包中提取所有ToSic.*程序集,复制到bin文件夹。
  • 删除DNN缓存目录:Portals\_default\Cache、App_Data\Cache,同时清空服务器.NET临时缓存(路径示例:C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files,根据实际.NET版本调整)。

2. 修复程序集绑定重定向

检查站点根目录web.config,确保所有2sxc相关的程序集绑定重定向指向18.6.1版本,示例:

<dependentAssembly>
  <assemblyIdentity name="ToSic.Eav.Core" publicKeyToken="28748230e94c6a7f" culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-18.6.1.0" newVersion="18.6.1.0" />
</dependentAssembly>

缺少则手动添加,存在旧版本重定向则更新为18.6.1。

3. 重新注册2sxc扩展

  • 启动站点,以超级管理员身份进入Host > Extensions页面。
  • 找到2sxc扩展,点击Reinstall,选择“仅覆盖文件”选项完成重新安装。
  • 重启站点后测试编辑模式。

4. 手动清理DNN扩展点缓存

若上述步骤无效,执行以下操作:

  • 打开SQL Server数据库,找到ExtensionPoints表,删除所有名称包含2sxc或ToSic的条目。
  • 重启站点,DNN会自动重新注册2sxc扩展点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 16:48:21