DNN9+.NET4.8环境下2SXC内容应用加载失败:缺失System.Web.Helpers
DNN 9 + .NET 4.8 下2SXC基础内容模块加载失败问题解决
问题现象
在DNN发行版上安装2SXC后,自定义应用可正常加载,但无法创建基础内容;在空白页面添加基础内容类型的内容模块时,触发以下错误:
Error: System.IO.FileLoadException: 无法加载文件或程序集“System.Web.Helpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040) 文件名称:“System.Web.Helpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35” 在 Connect.Koi.Dnn.DetectKoiOfCurrentDnnTheme.AutoDetect() 在 Connect.Koi.Context.HttpContextState.TryToDetectTheCssFramework(IDictionary items) 在 Connect.Koi.Context.HttpContextState.get_CssFramework() 在 Connect.Koi.Dnn.DetectAndCacheDnnThemeCssFramework.AutoDetect() 在 Connect.Koi.KoiCss..ctor(Dependencies dependencies) 在 lambda_method.lambda_method(Closure , ServiceProviderEngineScope ) 在 Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetService[T](IServiceProvider provider) 在 ToSic.Lib.DI.IServiceProviderExtensions.Build[T](IServiceProvider serviceProvider) 位置 C:\Projects\2sxc\eav-server\ToSic.Lib.Core\DI\IServiceProviderExtensions.cs:行号 26 在 ToSic.Lib.DI.IServiceProviderExtensions.Build[T](IServiceProvider serviceProvider, ILog parentLog) 位置 C:\Projects\2sxc\eav-server\ToSic.Lib.Core\DI\IServiceProviderExtensions.cs:行号 39 在 System.Lazy`1.CreateValue() 在 System.Lazy`1.LazyInitValue() 在 ToSic.Lib.DI.LazySvc`1.<get_Value>b__5_0() 位置 C:\Projects\2sxc\eav-server\ToSic.Lib.Core\DI\LazySvc.cs:行号 48 在 ToSic.Lib.HelpersOnce`1.Get.Get(Func`1 generator) 位置 C:\Projects\2sxc\eav-server\ToSic.Lib.Core\Helpers\GetOnce.cs:行号 37 在 ToSic.Sxc.Images.ImgResizeLinker.ImageOnly(String url, ResizeSettings settings, IHasMetadata field) 位置 C:\Projects\2sxc\2sxc\Src\Sxc\ToSic.Sxc\Images\ImgResizeLinker.cs:行号 84 在 ToSic.Sxc.Images.ResponsiveBase.<get_ThisResize>b__7_0() 位置 C:\Projects\2sxc\2sxc\Src\Sxc\ToSic.Sxc\Images\Responsive\ResponsiveBase.cs:行号 33 在 ToSic.Lib.HelpersOnce`1.Get.Get(Func`1 generator) 位置 C:\Projects\2sxc\eav-server\ToSic.Lib.Core\Helpers\GetOnce.cs:行号 37 在 ToSic.Sxc.Images.ResponsiveBase.SrcSetGenerator() 位置 C:\Projects\2sxc\2sxc\Src\Sxc\ToSic.Sxc\Images\Responsive\ResponsiveBase.cs:行号 183 在 ToSic.Lib.HelpersOnce`1.Get.Get(Func`1 generator) 位置 C:\Projects\2sxc\eav-server\ToSic.Lib.Core\Helpers\GetOnce.cs:行号 37 在 ASP._Page_Portals_68_2sxc_Content_bs5_Content_Text_and_Image_Part_Image_cshtml.Execute() 位置 c:\home\site\wwwroot\Portals\68\2sxc\Content\bs5\Content\Text and Image.Part-Image.cshtml🎯:行号 31 在 System.Web.WebPages.WebPageBase.ExecutePageHierarchy() 在 System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) 在 System.Web.WebPages.WebPageBase.<>c__DisplayClass7.<RenderPageCore>b__6(TextWriter writer) 在 System.Web.WebPages.HelperResult.ToString() 在 System.Web.WebPages.WebPageBase.Write(Object value) 在 ASP._Page_Portals_68_2sxc_Content_bs5_Content_Text_and_Image_cshtml.Execute() 位置 c:\home\site\wwwroot\Portals\68\2sxc\Content\bs5\Content\Text and Image.cshtml🎯:行号 42 在 System.Web.WebPages.WebPageBase.ExecutePageHierarchy() 在 System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) 在 ToSic.Sxc.Engines.DnnRazorEngine.Render(TextWriter writer, Object data) 位置 C:\Projects\2sxc\2sxc\Src\Dnn\ToSic.Sxc.Dnn.Razor\Engines\Razor\DnnRazorEngine.cs:行号 109 --- 引发异常的上一位置中堆栈跟踪的末尾 --- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 ToSic.Sxc.Engines.DnnRazorEngine.Render(TextWriter writer, Object data) 位置 C:\Projects\2sxc\2sxc\Src\Dnn\ToSic.Sxc.Dnn.Razor\Engines\Razor\DnnRazorEngine.cs:行号 116 在 ToSic.Sxc.Engines.DnnRazorEngine.RenderTemplate(Object data) 位置 C:\Projects\2sxc\2sxc\Src\Dnn\ToSic.Sxc.Dnn.Razor\Engines\Razor\DnnRazorEngine.cs:行号 124 在 ToSic.Sxc.Engines.EngineBase.Render(Object data) 位置 C:\Projects\2sxc\2sxc\Src\Sxc\ToSic.Sxc\Engines\EngineBase.cs:行号 178 在 ToSic.Sxc.Blocks.BlockBuilder.RenderInternal(Object data) 位置 C:\Projects\2sxc\2sxc\Src\Sxc\ToSic.Sxc\Blocks\BlockBuilder_Render.cs:行号 134 WRN: 程序集绑定日志记录被关闭。要启用程序集绑定失败日志记录,请将注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) 设置为 1。注意: 会有一些性能损失与程序集绑定失败日志记录关联。要关闭此功能,请移除注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog]。
问题根源
该错误是由于2SXC依赖的System.Web.Helpers程序集版本(2.0.0.0)与DNN环境中实际存在的版本不匹配,导致程序集加载失败。
解决方案
1. 添加/修改程序集版本重定向
打开网站根目录下的web.config文件,找到<runtime>节点下的<assemblyBinding>配置,添加或修改针对System.Web.Helpers的重定向规则:
<dependentAssembly> <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <!-- 将newVersion的值改为你的网站bin目录中实际存在的System.Web.Helpers.dll版本号 --> <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="3.0.0.0" /> </dependentAssembly>
注:版本号可通过查看网站
bin目录下的System.Web.Helpers.dll属性(右键→属性→详细信息→文件版本)获取。
2. 清理缓存
- 登录DNN后台,进入2SXC管理界面,清理应用缓存和系统缓存;
- 手动删除网站根目录下
Temp文件夹的所有内容,以及对应门户目录(如Portals/68)下2SXC相关的缓存文件。
3. 确认2SXC版本兼容性
确保安装的2SXC版本与DNN 9、.NET 4.8完全兼容,若版本不匹配,重新下载并安装兼容的2SXC版本。
4. 验证程序集完整性
检查网站bin目录下是否存在System.Web.Helpers.dll,若缺失,从DNN安装包或官方渠道获取对应版本的程序集放入bin目录。
内容的提问来源于stack exchange,提问作者Violet Rose
相关产品推荐
相关产品推荐

