DNN ModuleID没有从后面的代码传递到ascx

时间:2017-07-05 17:44:31

标签: angularjs vb.net dotnetnuke

Backstory:我使用DNN(DotNetNuke)内容管理系统来托管VB.NET/Angular1模块。

我目前遇到的问题是,我的模块的View.ascx无法访问代码隐藏中的值。这导致致命的运行时错误。

The code behind where the value is being passed to a publicly defined variable

The View.ascx where the variable is being used

Erreur: icod est présentement indisponible. 
DotNetNuke.Services.Exceptions.ModuleLoadException: C:\inetpub\wwwroot\FRANCO-NORD-www1\DesktopModules\icod\View.ascx(2): error BC30451: 'modID' n'est pas déclaré. Il peut être inaccessible en raison de son niveau de protection. ---> System.Web.HttpCompileException: C:\inetpub\wwwroot\FRANCO-NORD-www1\DesktopModules\icod\View.ascx(2): error BC30451: 'modID' n'est pas déclaré. Il peut être inaccessible en raison de son niveau de protection.
à System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath)
à System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate)
à System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate)
à System.Web.UI.TemplateControl.LoadControl(VirtualPath virtualPath)
à DotNetNuke.UI.ControlUtilities.LoadControl[T](TemplateControl containerControl, String ControlSrc)
à DotNetNuke.UI.Modules.WebFormsModuleControlFactory.CreateModuleControl(TemplateControl containerControl, ModuleInfo moduleConfiguration)
à DotNetNuke.UI.Modules.ModuleControlFactory.LoadModuleControl(TemplateControl containerControl, ModuleInfo moduleConfiguration)
à DotNetNuke.UI.Modules.ModuleHost.LoadModuleControl() --- Fin de la trace de la pile d'exception interne --

我注意到他们引用了View.ascx(2),好像项目或服务器上有两个物理版本的文件,但事实并非如此。

有关可能发生的事情的任何想法?如果帖子需要更多信息,请告诉我。

2 个答案:

答案 0 :(得分:2)

我通过将DNN的本地开发实例重建为高于生产实例的版本并重建模块来解决此问题。我相信我们在我们的环境中使用的DLL之一,当模块安装在较低版本的DNN上时,PetaPoco导致了一个问题。以前我的DNN本地副本是9.1.0.367,现在是9.1.1.129,而生产实例是9.1.1.113。

修复它需要完全重新实现我的开发环境并不理想,但我相信简单升级到相同或更高版本的目标站点也可以解决问题。

答案 1 :(得分:0)

根据更新的屏幕截图,我最好的猜测是,您的View.ascx中的完整班级名称不正确。它期待一个代码隐藏类“Christoc.Modules.icod.View”,但是你的部分类中没有定义名称空间,这意味着它将默认为你的默认项目命名空间(我假设它是不同的)。

我会尝试两件事。

1)确保在View.ascx.cs中定义名称空间

Namespace Christoc.Modules.icod
    Partial Class View
        ...
    End Class
End Namespace

2)确保将模块的程序集构建到DNN安装的正确/ bin文件夹中。