Orchardcms 果园1.8罐';无法启用自定义模块

Orchardcms 果园1.8罐';无法启用自定义模块,orchardcms,orchardcms-1.8,orchard-modules,Orchardcms,Orchardcms 1.8,Orchard Modules,我正在从Orchard 1.7升级到1.8。本地似乎一切正常,但当我部署我的站点时,我的一个自定义模块被禁用。当我单击仪表板模块部分中的“启用”链接时,页面将刷新,但模块仍处于禁用状态。我的本地实例连接到同一个数据库,并显示已启用的模块,因此不确定发生了什么。我在标准错误日志中没有看到任何详细信息 是否有任何方法可以查看任何可能导致模块无法启用的错误 谢谢这不是对您问题的直接回答,但您是否在发布orchard站点之前进行了完整的重建(假设您是这样部署的)?我发现,有时在发布之前,您必须重新构建所

我正在从Orchard 1.7升级到1.8。本地似乎一切正常,但当我部署我的站点时,我的一个自定义模块被禁用。当我单击仪表板模块部分中的“启用”链接时,页面将刷新,但模块仍处于禁用状态。我的本地实例连接到同一个数据库,并显示已启用的模块,因此不确定发生了什么。我在标准错误日志中没有看到任何详细信息

是否有任何方法可以查看任何可能导致模块无法启用的错误


谢谢

这不是对您问题的直接回答,但您是否在发布orchard站点之前进行了完整的重建(假设您是这样部署的)?我发现,有时在发布之前,您必须重新构建所有内容

这是由于我的功能名称与模块文件夹名称的大小写不匹配造成的。我的模块最初以Pascal case命名,即“MyModule”。在我的文件夹被重命名为“Mymodule”的过程中,Module.txt文件仍然将主要功能列为“Mymodule”


最后,我将Orchard.Modules.pdb文件复制到预编译web应用程序的bin文件夹中,并将VS调试器附加到其中,以查看发生了什么。该问题出现在Orchard.Modules.Controllers.AdminController.Features()中,其中FeatureDescriptor.Id==ShellFeature.Name的比较由于大小写不匹配而无法匹配。结果是,我的功能被显示为禁用,即使它在数据库中已启用。

recycle The appdomainI通过将完整的IIS站点指向预编译文件夹,可以在本地重现该问题。回收似乎无法解决问题。您的模块是否已生成?如果您没有将其包含在解决方案中,则在执行编译预编译时将不会生成它。是的,它包含在我的解决方案中,并且我可以在我的模块的bin文件夹(precompiled/modules/mymodule/bin/mymodule.dll)中看到.dll。我确实怀疑这是由于建筑或缺少参考,但这令人困惑,因为我没有得到任何类型的错误。模块显示在模块列表中,带有一个启用链接,但该链接未启用,因此我们希望有一种方法可以捕获任何原因。您可以查看数据库、表设置\u ShellFeatureStateRecord吗?找到包含功能名称的行并查看状态。使用Orchard随附的预编译msbuild命令,因此应处理此问题。