Join us this Friday for AI in Action at the Virtual Happy Hour! This free virtual event is open to all—enroll now on Academy and don’t miss out.

 

CMS edit mode search and Community edit mode not working after upgrade to .NET 4

Vote:
 

I recently upgraded a CMS 6 site with Community 4 to .NET 4 and am now getting errors.

The AJAX request made to /login/shell/Search/Index/?searchArea=CMS when searching from edit mode returns 500 (Internal Server Error) with the following stack trace:

[NullReferenceException: Object reference not set to an instance of an object.]
EPiServer.Shell.UI.Controllers.SearchController.Index(String searchArea) +105
lambda_method(Closure , ControllerBase , Object[] ) +107
System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) +17
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +201
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +27
System.Web.Mvc.<>c__DisplayClassd.<InvokeActionMethodWithFilters>b__a() +56
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +267
System.Web.Mvc.<>c__DisplayClassf.<InvokeActionMethodWithFilters>b__c() +20
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +190
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +343
System.Web.Mvc.Controller.ExecuteCore() +115
System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +42
System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext) +10
System.Web.Mvc.<>c__DisplayClass8.<BeginProcessRequest>b__4() +34
System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +21
System.Web.Mvc.Async.<>c__DisplayClass8`1.<BeginSynchronous>b__7(IAsyncResult _) +12
System.Web.Mvc.Async.WrappedAsyncResult`1.End() +55
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +45
System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +8967885
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +184

 

Trying to access Community edit or admin mode (/EPiServerCommunity/Moderate.aspx, /EPiServerCommunity/Admin.aspx) also results in a 500 (Internal Server Error) with the stack trace:

[MissingMethodException: Method not found: 'Void System.Web.Mvc.ViewPage.set_Html(System.Web.Mvc.HtmlHelper)'.]
EPiServer.Shell.Web.UI.MasterPageBase.CreateViewPage() +0
EPiServer.Shell.Web.UI.MasterPageBase.get_ViewPage() +55
EPiServer.Community.Web.Administration.EPiServerCommunity.CommunityMasterPage.set_Title(String value) +50
EPiServer.Community.Web.Administration.Moderate.OnLoad(EventArgs e) +80
System.Web.UI.Control.LoadRecursive() +74
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2207

 

Rolling back to .NET 3.5 fixes the problem, but that is not acceptable as the newest version of IntelliSearch (.NET 4 only) has to run on the site.

Following the EPiServer guides to upgrade to .NET 4 from the rolled back project results in the same errors again (bleh).

Does anyone have any insight on this or maybe even a solution? EPiServer Developer Support's answer is to roll back and upgrade again, but that doesn't work.

#60775
Aug 24, 2012 10:09
Vote:
 

I have upgraded at least two projects based on Relate (Relate 2.1, Community 4.1, CMS 6.1 (6 R2)) to .NET 4 (and obviously switched to a Framework 4 application pool) and at least the moderate/admin interfaces were working just fine (not sure i checked the search). So it is possible to get it working.

Could it be a problem with the MVC version? Or some problem with handlers/modules being different in .NET 4? 

#60780
Aug 24, 2012 13:26
Vote:
 

Yeah, it's possible.

I am in the process of comparing configuration files to a working green field CMS 6 / Community 4 project on .NET 4 (another customer) and I have already found some differences (none of them fixed the problem, though).

The project having issues was originally on EPiServer <=4 and has behaved all the way up to the .NET 3.5 to .NET 4 upgrade, but it seems that I now have a lot of configuration cleanup to do.

#60782
Aug 24, 2012 13:34
Vote:
 

Nice! Yeah, I bet there's some old mold in that config :)

#60784
Aug 24, 2012 14:03
Vote:
 

After lots of agony I finally fixed it.

It seems that EPiServer sites that are upgraded to CMS 6 have to use the MVC 1 DLL that comes with EPiServer and not the MVC 2 DLL.

Why? I have no idea. The method not found (System.Web.Mvc.ViewPage.set_Html) exists in MVC 2.

#60788
Aug 24, 2012 15:39
Vote:
 

While there is still a property by the same name, 'Void System.Web.Mvc.ViewPage.set_Html(System.Web.Mvc.HtmlHelper)' (as referenced in the error message) does not exist in MVC 2 and later.

In its place you will find 'Void System.Web.Mvc.ViewPage.set_Html(System.Web.Mvc.HtmlHelper<Object>)', ie the type of the property has changed.

#60796
Edited, Aug 27, 2012 10:37
Vote:
 

It does exist, but not in .NET 4, so running on .NET 3.5 works fine:

.NET 4: http://msdn.microsoft.com/en-us/library/system.web.mvc.viewpage.html(v=vs.100)

.NET 3.5: http://msdn.microsoft.com/en-us/library/system.web.mvc.viewpage.html(v=vs.90)

 

It's still wierd that a green field CMS 6 + Community 4 works fine while a migrated/upgraded CMS 6 + Community 4 does not.

Edit: Nevermind. The dropdown in the MS reference changes MVC version as well and not just .NET version>.<

#60797
Edited, Aug 27, 2012 10:44
This thread is locked and should be used for reference only. Please use the Episerver CMS 7 and earlier versions forum to open new discussions.
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.