【问题标题】:type (System.Web.UI.WebControls.Label) is not compatible with the type of control (ASP.controls_labelcontrol_ascx)类型 (System.Web.UI.WebControls.Label) 与控件类型 (ASP.controls_labelcontrol_ascx) 不兼容
【发布时间】:2015-10-12 08:07:41
【问题描述】:

以下问题与 DotNetNuke 相关 - 但在我看来是与 asp.net 相关的错误,我非常感谢解决此问题的每一个提示。

我有以下问题:在我的开发环境(Win 8.1、SqlServer 2008 R2 express、VS2013)中全新安装 DotNetNuke 7.4.2 后编辑 Html 模块的内容时,最后显示的异常会出现。在测试环境(Win 2K8 server 64bit, SqlServer 2008 R2 express)安装7.4.2时,编辑模块没有错误,一切正常。

使用空数据库完成安装,修改 web.config 以指向该数据库并调用 http://dnndev.me/install/install.aspx。该网站有自己的应用程序池,并且应用程序池用户已被授予安装文件夹的必要权限。顺便说一句:从 DNN v4 开始,此过程已成功使用(有修改)。

谷歌搜索没有显示太多结果。我尝试清除“v4.0.30319\Temporary ASP.NET Files”文件夹 - 没有成功。

有谁知道这个错误的原因是什么?

感谢您的想法, 罗伯特

Error: is currently unavailable. DotNetNuke.Services.Exceptions.ModuleLoadException: 
The base class includes the field 'plCurrentWorkVersion', but its type (System.Web.UI.WebControls.Label) 
is not compatible with the type of control (ASP.controls_labelcontrol_ascx). 
---> System.Web.HttpParseException: The base class includes the field 'plCurrentWorkVersion', 
but its type (System.Web.UI.WebControls.Label) is not compatible with the type of control (ASP.controls_labelcontrol_ascx). 
---> System.Web.HttpParseException: The base class includes the field 'plCurrentWorkVersion', but its type (System.Web.UI.WebControls.Label) 
is not compatible with the type of control (ASP.controls_labelcontrol_ascx). 
at System.Web.Compilation.BaseTemplateCodeDomTreeGenerator.BuildFieldDeclaration(ControlBuilder builder) 
at System.Web.Compilation.BaseTemplateCodeDomTreeGenerator.BuildSourceDataTreeFromBuilder(ControlBuilder builder, Boolean fInTemplate, Boolean topLevelControlInTemplate, PropertyEntry pse) 
at System.Web.Compilation.BaseTemplateCodeDomTreeGenerator.BuildSourceDataTreeFromBuilder(ControlBuilder builder, Boolean fInTemplate, Boolean topLevelControlInTemplate, PropertyEntry pse) 
at System.Web.Compilation.BaseTemplateCodeDomTreeGenerator.BuildSourceDataTreeFromBuilder(ControlBuilder builder, Boolean fInTemplate, Boolean topLevelControlInTemplate, PropertyEntry pse) 
at System.Web.Compilation.TemplateControlCodeDomTreeGenerator.BuildMiscClassMembers() 
at System.Web.Compilation.BaseCodeDomTreeGenerator.BuildSourceDataTree() 
at System.Web.Compilation.BaseCodeDomTreeGenerator.GetCodeDomTree(CodeDomProvider codeDomProvider, StringResourceBuilder stringResourceBuilder, VirtualPath virtualPath) 
at System.Web.Compilation.BaseTemplateBuildProvider.GenerateCode(AssemblyBuilder assemblyBuilder) 
at System.Web.Compilation.AssemblyBuilder.AddBuildProvider(BuildProvider buildProvider) 
--- End of inner exception stack trace --- 
at System.Web.Compilation.AssemblyBuilder.AddBuildProvider(BuildProvider buildProvider) 
at System.Web.Compilation.BuildProvidersCompiler.ProcessBuildProviders() 
at System.Web.Compilation.BuildProvidersCompiler.PerformBuild() 
at System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath) 
at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) 
at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) 
at System.Web.Compilation.BuildManager.GetVPathBuildResult(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean ensureIsUpToDate) 
at System.Web.UI.TemplateControl.LoadControl(VirtualPath virtualPath) 
at DotNetNuke.UI.ControlUtilities.LoadControl[T](TemplateControl containerControl, String ControlSrc) 
at DotNetNuke.UI.Modules.ModuleControlFactory.LoadModuleControl(TemplateControl containerControl, ModuleInfo moduleConfiguration) 
at DotNetNuke.UI.Modules.ModuleHost.LoadModuleControl() 
--- End of inner exception stack trace ---

相关的标记代码是

<asp:Label id="plCurrentWorkVersion" runat="server" text="Version" ResourceKey="plCurrentWorkVersion"  />

【问题讨论】:

  • 好像你混淆了不同的 DNN 版本。您是否从开发机器中的先前版本升级?你在安装新的之前删除了旧的吗? dnnsoftware.com/forums/threadid/371687/scope/posts/…有相关讨论
  • 您好 Panagiotis,安装文件被复制到一个空文件夹中。最好的问候,罗伯特

标签: asp.net dotnetnuke


【解决方案1】:

如果您已经删除了该站点,那么检查可能为时已晚,但我会检查该站点下是否存在 DesktopModules 上的 Application/VirtualDirectory 或其中的任何子文件夹。这是我在 Visual Studio 中的模板的常见问题,出于某种原因,VS 会随机将这些文件夹变成一个单独的应用程序,这会导致各种混乱,直到您在 IIS 中删除该应用程序。

【讨论】:

  • 这确实是原因(正如我在上面答案的编辑部分中所写的那样)。删除该站点确实删除了此文件夹,因此在编译期间使用不同版本的情况消失了。谢谢,罗伯特
【解决方案2】:

站点 dnndev.me(及其应用程序)以前曾用于其他安装。

删除并重新创建站点(暗示应用程序)解决了错误(请注意,创建一个新的应用程序池是不够的)。

如果有对此的解释,我将不胜感激。

编辑:将当前的 applicationHost.config 与旧版本进行比较显示了错误的原因:有一个附加条目指向另一个旧版本中路径的完全限定名称。这导致使用两个版本进行编译(这是 Panagiotis 已经编写的)。

【讨论】:

    猜你喜欢
    • 2013-10-30
    • 2019-04-05
    • 2012-01-04
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    相关资源
    最近更新 更多