More in this section

Forums / Bugs & Issues / Backend pages Null Reference Exception

Backend pages Null Reference Exception

6 posts, 0 answered
  1. Joseph
    Joseph avatar
    0 posts
    Registered:
    18 Apr 2016
    05 Oct
    Link to this post

    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)

  2. Jonathan
    Jonathan avatar
    119 posts
    Registered:
    19 Dec 2012
    06 Oct
    Link to this post
    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?
  3. Joseph
    Joseph avatar
    0 posts
    Registered:
    18 Apr 2016
    06 Oct
    Link to this post

    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.

  4. Jonathan
    Jonathan avatar
    119 posts
    Registered:
    19 Dec 2012
    06 Oct in reply to Joseph
    Link to this post

    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? 

  5. Joseph
    Joseph avatar
    0 posts
    Registered:
    18 Apr 2016
    06 Oct
    Link to this post

    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>

  6. Jonathan
    Jonathan avatar
    119 posts
    Registered:
    19 Dec 2012
    06 Oct in reply to Joseph
    Link to this post

    Have a look at this knowledge base article and lets see if you can get more details about the error.

    https://knowledgebase.progress.com/articles/Article/How-to-get-more-information-on-Sitefinity-restarts?q=how+to+get+more&l=en_US&c=Product_Group%3ASitefinity&fs=Search&pn=1

    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.

6 posts, 0 answered