我试图对模块进行更改。我无法让网站看起来反映这些变化。我想我可能会禁用该功能,并重新启用该功能,它会强制任何模块缓存发生重新加载模块。然而,它完全打破了网站,现在我甚至无法从orchard.exe命令行工具启用该功能。我收到了同样的错误。基本上Autofac抱怨说它无法找到属于该功能的类型。但是,如果该功能被删除,我不确定它仍在尝试加载的位置/原因。已禁用的果园模块(功能)/整个网站已损坏
例外:
None of the constructors found with 'Orchard.Environment.AutofacUtil.DynamicProxy2.ConstructorFinderWrapper' on type 'RCAM.Products.Drivers.FeaturedProductsWidgetPartDriver' can be invoked with the available services and parameters:
Cannot resolve parameter 'RCAM.Products.Services.IProductService productService' of constructor 'Void .ctor(RCAM.Products.Services.IProductService)'.
我不能在管理门户网站得到重新启用该功能。我无法使用命令行工具。我试着在数据库中设置[Settings_ShellFeatureStateRecord]为Up,但是这根本没有任何改变。它必须由文件驱动以及数据库持久化。
这是一个生产网站,目前正在关闭。任何帮助你可以给予不胜感激。
你应该永远都不会更改代码生产。如果你的改变阻止了模块的编译(就像这里的情况那样),它会使整个站点停下来。要取消阻止,请创建更改的副本,然后删除模块的目录。该网站现在应该可以运行,减去该模块的功能。修复它在开发机器上,然后部署该工作版本。 –
伯特兰。感谢您的建议。它在我的本地开发机器上进行了编译,并且代码更改在本地按预期工作。我的假设是,我可以复制/覆盖生产服务器上module/bin文件夹中的新模块二进制文件,并且它会立即反映这些更改,就像它在正常的MVC应用程序中那样。它甚至没有,即使在回收应用程序池之后。您在上面看到的错误仅在管理员门户中禁用该功能后才出现,并立即发生。 –
通过部分文件复制进行部署可能会以许多不同的细微方式失败。动态编译可能在目标上打开或关闭,你的app_data/Dependencies可能需要删除等。在部署之前发布或构建预编译通常是一个好主意。 –