代码之家  ›  专栏  ›  技术社区  ›  SidC

如何解决请求addmodule时发生dnn错误

  •  0
  • SidC  · 技术社区  · 6 年前

    我使用christoc.com上的dnn web表单模板开发了一个自定义dnn模块。解决方案生成时没有错误,生成的安装包在DNN 9.2实例中安装时没有问题。

    当我试图将自定义模块添加到页面时,收到上述错误chrome开发工具显示的更多信息如下:

    POST http://localhost:81/API/internalservices/controlbar/AddModule 500 
    (Internal Server Error)
    send @ jquery.js?cdv=150:9566
    ajax @ jquery.js?cdv=150:9173
    jQuery.ajax @ jquery-migrate.js?cdv=150:191
    request @ ModuleService.js?cdv=150:30
    addModule @ ModuleDialog.js?cdv=150:214
    _doAddModule @ ModuleDialog.js?cdv=150:794
    proxy @ jquery.js?cdv=150:496
    dispatch @ jquery.js?cdv=150:5206
    elemData.handle @ jquery.js?cdv=150:5014
    

    标准的DNN模块(如HTML)可以毫无问题地安装到同一个页面上我刚刚将9.2最新的升级包应用于运行通用DNN皮肤的实例。

    JQuery似乎有问题,但我不确定问题所在以及如何解决它任何帮助和指导都将不胜感激。

    更新:
    我想共享DNN清单文件的一部分,因为这可能是根本原因,但我不确定样品如下:

    <moduleControl>
                    <controlKey>Product AccountLink</controlKey>
                    <controlSrc>DesktopModules/MyModuleName/P_View_AccountLink.ascx</controlSrc>
                    <supportsPartialRendering>False</supportsPartialRendering>
                    <controlTitle>AccountLink Content</controlTitle>
                    <controlType>View</controlType>
                    <iconFile />
                    <helpUrl />
                    <viewOrder>0</viewOrder>
                    <supportsPopUps>True</supportsPopUps>
    </moduleControl>
    

    更新2:我了解到,在页面上查看模块时,要首先看到的视图必须在DNN清单中将controlKey设置为nothing执行此操作、删除模块、重新安装模块并尝试将其放置在页面上后,引发以下错误:

    AbsoluteURL:/Default.aspx
    DefaultDataProvider:DotNetNuke.Data.SqlDataProvider, DotNetNuke
    ExceptionGUID:5386839d-258e-4214-ae27-fb0bbae8837a
    AssemblyVersion:
    PortalId:-1
    UserId:-1
    TabId:-1
    RawUrl:
    Referrer:
    UserAgent:
    
    ExceptionHash:rtw8cf/KL7W//vxFceePqix1IGE=
    Message:Value cannot be null. Parameter name: type
    
    StackTrace:
    at System.Activator.CreateInstance(Type type, Boolean nonPublic) at 
    System.Activator.CreateInstance(Type type) at 
    DotNetNuke.UI.Skins.Pane.IsVesionableModule(ModuleInfo moduleInfo) at 
    DotNetNuke.UI.Skins.Pane.InjectModule(ModuleInfo module) at 
    DotNetNuke.UI.Skins.Skin.InjectModule(Pane pane, ModuleInfo module)
    
    InnerMessage:
    InnerStackTrace:
    Source:mscorlib
    FileName:
    FileLineNumber:0
    FileColumnNumber:0
    Method:
    

    所以在这一点上,模块仍然不能正确地添加到页面中我在SQL Server DNN事件日志表中注意到以下条目:

    <LogProperties>
       <LogProperty>
         <PropertyName>AbsoluteURL</PropertyName>
         <PropertyValue>/Default.aspx</PropertyValue>
       </LogProperty>
       <LogProperty>
         <PropertyName>DefaultDataProvider</PropertyName>
         <PropertyValue>DotNetNuke.Data.SqlDataProvider, 
         DotNetNuke</PropertyValue>
       </LogProperty>
       <LogProperty>
         <PropertyName>ExceptionGUID</PropertyName>
         <PropertyValue>5386839d-258e-4214-ae27-fb0bbae8837a</PropertyValue>
      </LogProperty>
    </LogProperties>
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   VDWWD    6 年前

    我已经有一段时间了,但我相信我的一个模块也有过类似的错误。 它可以毫无问题地添加到旧安装的页面中,在dnn 9中安装也很好。但是将它添加到DNN 9中的页面将不起作用。 问题是 .DNN 文件和安装包的实际内容。

    我想是 moduleControls 节点 moduleDefinitions 这不再存在,或者相反。

    无论如何,请将DNN文件中的所有项目与实际文件匹配,然后删除/添加防御并重新安装包。