There is a known issue in DNN Evoq versions before 8.5 that leads DNN modules to stop working and produce the following error:
Message:Index was outside the bounds of the array.
InnerMessage:Index was outside the bounds of the array.
at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
at System.Web.Mvc.MultiServiceResolver.GetCombined[TService](IList`1 items, IDependencyResolver resolver)
at System.Web.Mvc.ViewEngineCollection.Find(Func`2 lookup, Boolean trackSearchedPaths)
at System.Web.Mvc.ViewEngineCollection.FindView(ControllerContext controllerContext, String viewName, String masterName)
at DotNetNuke.Web.Mvc.Framework.ActionResults.DnnViewResult.ExecuteResult(ControllerContext context, TextWriter writer)
at DotNetNuke.Web.Mvc.Framework.Modules.ModuleExecutionEngine.ExecuteModuleResult(ModuleRequestResult moduleResult, TextWriter writer)
at DotNetNuke.Web.Mvc.MvcHostControl.RenderModule(ModuleRequestResult moduleResult)
at DotNetNuke.Web.Mvc.MvcHostControl.OnLoad(EventArgs e)
Restarting the application fixes the problem temporarily but it will continue to happen.
- Evoq versions 8.3+ prior to 8.5
You will need:
- Access to a Superuser account.
- Access to site root directory and files
This issue is related to the MVC view engine in DNN and is a known bug with Evoq 8.3+.
- This defect was fixed in versions 8.5+. We strongly suggest that you upgrade to permanently fix this problem.
- If you are unable to or unwilling to upgrade, then the following patch will work but ONLY on version 8.4.2.
- Take a backup of your DotNetNuke.Web.Mvc.dll library file from your <WebSiteRootDirectory>/bin/ directory.
- Download the attached 842-DotNetNuke.Web.Mvc.dll.zip file and extract it.
- Copy the DotNetNuke.Web.Mvc.dll file from the extracted directory in step 2 to your <WebSiteRootDirectory>/bin/ directory.
- Clear your cache and restart the application.
Modules that were previously failing should now work without throwing errors.