请求AddModule出现DNN错误如何解决

How to Resolve DNN Error Occurred When Request AddModule

我使用 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

像 HTML 这样的标准 DNN 模块可以毫无问题地安装到同一页面上。我刚刚将 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 设置为空。这样做后,删除模块,重新安装,并尝试放置在页面上,抛出以下错误:

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 服务器 DNN 事件日志 table 中记录了以下条目:

<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>

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

我认为是 moduleDefinitions 中的一个 moduleControls 节点不再存在,或者相反。

无论如何将 DNN 文件中的所有项目与实际文件和 remove/add 定义匹配并重新安装包。