Backend pages Null Reference Exception
All,
We are getting a null reference exception when viewing any back-end pages.
This happened all of a sudden a few days ago and again today.
We had to restore the database to fix this last time.
Here is what is in the error log and event viewer:
Process information:
Process ID: 7356
Process name: w3wp.exe
Account name: NT AUTHORITY\NETWORK SERVICE
Exception information:
Exception type: NullReferenceException
Exception message: Object reference not set to an instance of an object.
at Telerik.Sitefinity.Services.InactiveModule.Start(SiteInitializer initializer)
at Telerik.Sitefinity.Services.SystemManager.GetApplicationModule(String name)
at Telerik.Sitefinity.Services.SystemManager.GetModule(String name)
at Telerik.Sitefinity.Web.BackendSiteMap.IsPageNodeEnabled(PageNode pageNode)
at Telerik.Sitefinity.Web.SiteMapBase.GetChildNodes(SiteMapNode parent, Boolean ifAccessible)
at System.Web.SiteMapNode.get_HasChildNodes()
at Telerik.Sitefinity.Web.UI.Backend.MainMenu.IsNodeEmpty(PageSiteNode node)
at System.Linq.Enumerable.WhereArrayIterator`1.MoveNext()
at System.Linq.Enumerable.Count[TSource](IEnumerable`1 source)
at Telerik.Sitefinity.Web.UI.Backend.MainMenu.IsNodeEmpty(PageSiteNode node)
at Telerik.Sitefinity.Web.UI.Backend.MainMenu.CreateRadMenuItemFromNode(SiteMapNode node)
at Telerik.Sitefinity.Web.UI.Backend.MainMenu.OnLoad(EventArgs e)
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.AddedControl(Control control, Int32 index)
at System.Web.UI.Control.EnsureChildControls()
at System.Web.UI.Control.PreRenderRecursiveInternal()
at System.Web.UI.Control.PreRenderRecursiveInternal()
at System.Web.UI.Control.PreRenderRecursiveInternal()
at System.Web.UI.Control.PreRenderRecursiveInternal()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
Can you tell us more about your environment? Server, Azure, IIS version, Sitefinity version, .NET version. Where are your Sitefinity configs stores, files system or database? Does recycling the app pool fix it? Is there any other error in the error log files. Are they any major changes happening to the site before this occurs, a change to a template that all the pages use or anything like that? Any customization to backend?
Hi Jonathan, thank you for replying.
The server environment is as follows:
Windows server 2012 R2 Standard, IIS 8.5, Sitefinity 9.2, .NET 4.6.2.
Configurations are set to "Auto" in the web.config.
I have tried both File System and Database with an app pool recycle and saw the same results, even tried using configs from an earlier backup.
It's just this error over and over for each person trying to access the backend, here's some additional information from the log file:
Extended Properties:
----------------------------------------
----------------------------------------
Timestamp: 10/5/2017 1:11:34 PM
Message: HandlingInstanceID: eba99509-bd9c-43f9-8b3e-c274461a388b
An exception of type 'System.NullReferenceException' occurred and was caught.
-----------------------------------------------------------------------------
10/05/2017 09:11:34
Type : System.NullReferenceException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
Message : Object reference not set to an instance of an object.
Source : Telerik.Sitefinity
Help link :
Data : System.Collections.ListDictionaryInternal
TargetSite : Void Start(Telerik.Sitefinity.Abstractions.SiteInitializer)
HResult : -2147467261
No major changes that I'm aware of it's actually towards the end of the day that it has happened.
There are some added backend pages, they have their own widgets. and a small amount of jquery to add an additional link where the site to the site is on the top right. those have all been in place for months, this just started last week.
Does the frontend still serve pages correctly? In your web.config on the <compilation> attribute what is your numRecompilesBeforeAppRestart set too? Try increasing it to 1000 or 2000. This basically says how many edits before the site recycles. It might be a long shot but won't hurt to increase it.
Do you have any logic in the global.ascx in app_start or any other methods?
The front end is perfectly fine, you can still use all the custom widgets, browse etc.
The numRecompilesBeforeAppRestart is set to 50, i'm guessing thats the default.
I'll up this to 1000 and see if the issue doesn't come back.
There is logic in Appication Start and End Request.
End Request does the following, at the time we couldn't figure out how to have pages that redirect to another page not cache as a 301 so we overrode it:
protected void Application_EndRequest(object sender, EventArgs e)
//skip public pages and possible moves from old site
if (!Request.Url.PathAndQuery.ToLower().Contains("public") && !Request.Url.PathAndQuery.ToLower().Contains("aspx"))
if (Response.StatusCode == 301)
Response.CacheControl = "NO-CACHE";
Response.Cache.SetExpires(DateTime.Today);
Response.StatusCode = 302;
Response.End();
App start just registers the bootstrapper initialized event and subscribes to these as well as registering two custom routes:
EventHub.Subscribe<IEcommerceOrderStatusChangedEvent>
EventHub.Subscribe<IDataEvent>
EventHub.Subscribe<IDynamicContentCreatedEvent>
EventHub.Subscribe<IFormEntryCreatedEvent>
EventHub.Subscribe<IFormEntryCreatedEvent> - different purpose
EventHub.Subscribe<UserUpdated>
Have a look at this knowledge base article and lets see if you can get more details about the error.
knowledgebase.progress.com/.../How-to-get-more-information-on-Sitefinity-restarts
The other suggestion would be to use something like dotTrace to see if there are un-handled errors or bottle necks that cause server resource drain.
Just as a followup, the suggestion of increasing numRecompilesBeforeAppRestart to 1000 has thus far prevented the problem from appearing, in the past three weeks.
Thank you.
The error returned this morning, i tried upping the value to 2000, no difference. any help would be appreciated, this system is supposed to be moving to production within a week.
Have you tried using the sitefinity diagnostic module? docs.sitefinity.com/overview-performance-diagnostics-module
Is this hosted on premises or cloud?