MooreCreative
2017-12-29T21:56:53Z
I'm looking into error messages that are displaying in the font-end modules of the new Hotcakes 3.0.1 installation I've done recently.

This is in a DNN instance that was DNN 7.x and was first upgraded to DNN 8.0.4 before then installing the module version of Hotcakes 3.0.1.

The installation went smoothly and the admin screens are all operating correctly. I completed the setup of the store (skipped some info screens but completed the setup wizard) and then installed example categories/products.

On the front end pages such as /Store/Categories and other public-facing pages/modules, I'm seeing errors that seem to relate to the version of Razor in this DNN instance being 3.0.0.0 vs the 2.0.0.0 that must be referenced in the code(?) or web.config


Error: Category Viewer is currently unavailable. DotNetNuke.Services.Exceptions.ModuleLoadException: Error executing child request for handler 'System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper'. ---> System.Web.HttpException: Error executing child request for handler 'System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper'. ---> System.IO.FileLoadException: Could not load file or assembly 'System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference.


I'm going to check into either binding settings in the webconfig or replacing down to the earlier 2x version of Razor WebPages to see if that corrects the issue without breaking something else. But I wanted to check in here first to see if anyone else has encountered this issue with an install of the new HC3x yet?
MooreCreative
2018-01-01T17:10:59Z
> SOLVED <

I'll try to be specific for anyone else who encounters this issue. Here are a few of the starting factors involved:
  • Started with a DNN 7.4 instance, upgraded to DNN 8.0.2 & performed base security updates
  • Installed Hotcakes 3.0.1 module solution install package "Hotcakes_03.00.01_Core_Install.zip"
  • All Hotcakes admin screens loaded correctly (/DesktopModules/Hotcakes/)
  • Performed setup of store information, running through Setup Wizard
  • Front-end public visible modules (such as /Store/Categories page and Category Viewer modules, /Store/Products detail page and HC Product Viewer module) displayed errors referring to "Could not load file or assembly 'System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies"


I confirmed that the web.config for the site had the proper references for Razor which pointed to the new 3.0.0.0 version of the various System.Web.XYZ related items:


      <dependentAssembly>
        <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
      </dependentAssembly>

I tried a few different ways to list, register, enforce the 3.x version of "System.Web.WebPages.Razor" however they had no effect. I also tried a few other things such as loading an older 2.0.0.0 version in the bin folder, but that didn't help either (didn't think that it would, but it really caused other problems!).

In the end, by comparing the Hotcakes stand-alone full system CMS version's web.config to this DNN instance's web.config, I found a difference for a missing System.Web.Mvc assembly that was present in the hotcakes cms version:


      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="0.0.0.0-5.1.0.0" newVersion="5.1.0.0" />
      </dependentAssembly>

Once this was added to the DNN instance's web.config, everything loaded correctly in the site and for all of the Hotcakes modules.
Prathyusha
2018-01-29T16:46:34Z
I still got the error "An error has occurred. Error: Hotcakes Category Viewer is currently unavailable" even after adding the reference.

<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-5.1.0.0" newVersion="5.1.0.0" />
</dependentAssembly>


Please guide. Thanks in advance!
MooreCreative
2018-01-29T22:33:58Z
Originally Posted by: Prathyusha 

I still got the error "An error has occurred. Error: Hotcakes Category Viewer is currently unavailable" even after adding the reference.

<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-5.1.0.0" newVersion="5.1.0.0" />
</dependentAssembly>


Please guide. Thanks in advance!



hmmm, changing anything in the web.config would restart the site/application pool, but that's my first question... Did you restart DNN after that change?

Can you post the rest of the error message so that we can compare to make sure it's the same as the one we'd seen?
Prathyusha
2018-01-30T00:13:37Z
Thank you so much for your response. Yes, even after restarting the DNN application pool the problem pertains.

Here's the detailed error i received:
Error: Hotcakes Category Viewer is currently unavailable. DotNetNuke.Services.Exceptions.ModuleLoadException: Error executing child request for handler 'System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper'. ---> System.Web.HttpException: Error executing child request for handler 'System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper'. ---> System.Web.HttpCompileException: c:\inetpub\vhosts\dev.rgrta.com\httpdocs\Portals\0\HotcakesViews\RGRTA\Views\Category\_Header.cshtml(14): error CS0117: 'Hotcakes.Commerce.WebAppSettings' does not contain a definition for 'IsSocial' at System.Web.Compilation.AssemblyBuilder.Compile() at System.Web.Compilation.BuildProvidersCompiler.PerformBuild() at System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath) at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) at System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean throwIfNotFound) at System.Web.Compilation.BuildManager.GetCompiledType(VirtualPath virtualPath) at System.Web.Compilation.BuildManager.GetCompiledType(String virtualPath) at System.Web.Mvc.BuildManagerWrapper.System.Web.Mvc.IBuildManager.GetCompiledType(String virtualPath) at System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer) at System.Web.Mvc.HtmlHelper.RenderPartialInternal(String partialViewName, ViewDataDictionary viewData, Object model, TextWriter writer, ViewEngineCollection viewEngineCollection) at System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper htmlHelper, String partialViewName, Object model, ViewDataDictionary viewData) at System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper htmlHelper, String partialViewName, Object model) at ASP._Page_Portals_0_HotcakesViews_RGRTA_Views_Category_Index_cshtml.Execute() in c:\inetpub\vhosts\dev.rgrta.com\httpdocs\Portals\0\HotcakesViews\RGRTA\Views\Category\Index.cshtml:line 9 at System.Web.WebPages.WebPageBase.ExecutePageHierarchy() at System.Web.Mvc.WebViewPage.ExecutePageHierarchy() at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) at System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance) at System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer) at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult) at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<>c__DisplayClass2b.<BeginInvokeAction>b__1c() at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End() at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) at System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End() at System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) at System.Web.Mvc.Controller.<BeginExecute>b__15(IAsyncResult asyncResult, Controller controller) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End() at System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) at System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) at System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__5(IAsyncResult asyncResult, ProcessRequestState innerState) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End() at System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) at System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) at System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerAsyncWrapper.<>c__DisplayClassa.<EndProcessRequest>b__9() at System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.<>c__DisplayClass4.<Wrap>b__3() at System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.Wrap[TResult](Func`1 func) at System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.Wrap(Action action) at System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerAsyncWrapper.EndProcessRequest(IAsyncResult result) at System.Web.HttpServerUtility.ExecuteInternal(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage, VirtualPath path, VirtualPath filePath, String physPath, Exception error, String queryStringOverride) --- End of inner exception stack trace --- at System.Web.HttpServerUtility.ExecuteInternal(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage, VirtualPath path, VirtualPath filePath, String physPath, Exception error, String queryStringOverride) at System.Web.HttpServerUtility.Execute(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage) at System.Web.HttpServerUtility.Execute(IHttpHandler handler, TextWriter writer, Boolean preserveForm) at System.Web.HttpServerUtilityWrapper.Execute(IHttpHandler handler, TextWriter writer, Boolean preserveForm) at System.Web.Mvc.Html.ChildActionExtensions.ActionHelper(HtmlHelper htmlHelper, String actionName, String controllerName, RouteValueDictionary routeValues, TextWriter textWriter) at System.Web.Mvc.Html.ChildActionExtensions.Action(HtmlHelper htmlHelper, String actionName, String controllerName, RouteValueDictionary routeValues) at Hotcakes.Commerce.Dnn.Mvc.MvcRenderingEngine.Render(String controllerName, String actionName, String viewName, Object routeValues) at Hotcakes.Modules.CategoryViewer.CategoryViewerView.RenderView() at Hotcakes.Commerce.Dnn.Web.HotcakesModuleBase.OnLoad(EventArgs e) --- End of inner exception stack trace ---
Idas
  •  Idas
  • 53.25% (Neutral)
  • Newbie
2018-01-31T14:11:25Z
I've got the exact same error. Any luck yet with solving the problem?
Prathyusha
2018-01-31T14:45:18Z
No. i couldn't figure out what the issue is or how it can be fixed. Hopefully @Moorecreative should be able to help
MooreCreative
2018-07-05T18:07:30Z
I had emailed/messaged back a bit with Idas and Prathyusha, hoping that I could reproduce the same problem on one of our servers but in the end wasn't able to create a setup where that extra MVC Dependency DIDN'T solve the problem for us... as in, any time I put that extra dependency into the web.config, it solved the problem instantly.

This week I did an upgrade from a 3.0.1 Hotcakes instance to a 3.2.0 instance... after the module installed and updated the site's HotCakes version, I noticed that the same store, category and product page issues occurred again... the upgrade of the module undid the dependency in the site's web.config(?). All I did was add back in the dependency record and the HotCakes modules all loaded correctly again.
MooreCreative
2019-06-23T02:12:42Z
This week I'm doing another Hotcakes DNN upgrade from 1.10 up to 3x as well as moving DNN from 7x up to 9.

Already, in the first step of just moving the Hoctakes instance from 1.10.3 to 1.10.4 I received a similar error message after the module install/upgrade.

In this situation, the XML in the web.config had a blank value for xmlns like this:
<dependentAssembly xmlns="">
<assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>

removing the xmlns="" allowed me to move forward another step in install/fix

Additionally, in another upgrade step, I noticed that some error messages after update were regarding the older dlls which Hotcakes put in place vs the DNN 8x dlls that had been there earlier.

I would recommend checking on the version of these dlls and manually updating them in the /bin/ folder and in the webconfig

System.Web.Mvc.dll
System.Web.Razor.dll
System.Web.WebPages.dll
System.Web.WebPages.Razor.dll

<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Razor" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.1.0.0" />
</dependentAssembly>


** Note that the System.Web.MVC is most likely version 5.1.0.0... I had 5.0.0.0 set at one point and that had issues, checking to the DLL, it was 5.1.20129.0, so 5.1.0.0 is the proper number for the dependentAssembly reference
MooreCreative
2019-06-23T04:47:01Z
and then one more related when getting to HotCakes 2 x versions (when having already allowed for the MVC 5x in the web.config) is that every HC 2x upgrade step kept setting this value

<add name="UrlRoutingModule-4.0" type="Hotcakes.Commerce.Dnn.Providers.HccUrlRoutingModule, Hotcakes.Commerce.Dnn" preCondition="managedHandler,runtimeVersionv4.0" />

and that needs to be

<add name="UrlRoutingModule-4.0" type="Hotcakes.Commerce.Dnn.Providers.HccUrlRoutingModule, Hotcakes.Commerce.Dnn" preCondition="managedHandler,runtimeVersionv5.0" />

to match the MVC 5x state.
Loading
  • Sign-up for the Hotcakes Community Newsletter: