We have a DNN instance running about 50 portals on DNN 8.0.3. It's using the advanced urlformat setting of the DNNFriendlyUrl Provider. For some reason, about once a day we start getting errors on several portals (usually not the same ones). When I check the error logs I see the following error:
Exception information:
Exception type: IndexOutOfRangeException
Exception message: Index was outside the bounds of the array.
at System.Collections.Generic.List`1.Contains(T item)
at DotNetNuke.Entities.Urls.CustomUrlDictController.FetchCustomUrlDictionary(Int32 portalId, Boolean forceRebuild, Boolean bypassCache, FriendlyUrlSettings settings, SharedDictionary`2& customAliasForTabs, Guid parentTraceId) in C:\TeamCity\buildAgent\work\DNN_Platform_803_Public\Packaging\DNN.Platform\DNN Platform\Library\Entities\Urls\CustomUrlDictController.cs:line 198
at DotNetNuke.Entities.Urls.TabPathHelper.GetTabPath(TabInfo tab, FriendlyUrlSettings settings, FriendlyUrlOptions options, Boolean ignoreCustomRedirects, Boolean homePageSiteRoot, Boolean isHomeTab, String cultureCode, Boolean isDefaultCultureCode, Boolean hasPath, Boolean& dropLangParms, String& customHttpAlias, Boolean& isCustomPath, Guid parentTraceId) in C:\TeamCity\buildAgent\work\DNN_Platform_803_Public\Packaging\DNN.Platform\DNN Platform\Library\Entities\Urls\TabPathController.cs:line 206
at DotNetNuke.Entities.Urls.AdvancedFriendlyUrlProvider.ImproveFriendlyUrlWithMessages(TabInfo tab, String friendlyPath, String pageName, PortalSettings portalSettings, Boolean ignoreCustomRedirects, FriendlyUrlSettings settings, List`1& messages, Boolean cultureSpecificAlias, Guid parentTraceId) in C:\TeamCity\buildAgent\work\DNN_Platform_803_Public\Packaging\DNN.Platform\DNN Platform\Library\Entities\Urls\AdvancedFriendlyUrlProvider.cs:line 943
at DotNetNuke.Entities.Urls.AdvancedFriendlyUrlProvider.ImproveFriendlyUrl(TabInfo tab, String friendlyPath, String pageName, PortalSettings portalSettings, Boolean ignoreCustomRedirects, Boolean cultureSpecificAlias, FriendlyUrlSettings settings, Guid parentTraceId) in C:\TeamCity\buildAgent\work\DNN_Platform_803_Public\Packaging\DNN.Platform\DNN Platform\Library\Entities\Urls\AdvancedFriendlyUrlProvider.cs:line 853
at DotNetNuke.Entities.Urls.AdvancedFriendlyUrlProvider.FriendlyUrlInternal(TabInfo tab, String path, String pageName, String portalAlias, PortalSettings portalSettings) in C:\TeamCity\buildAgent\work\DNN_Platform_803_Public\Packaging\DNN.Platform\DNN Platform\Library\Entities\Urls\AdvancedFriendlyUrlProvider.cs:line 448
at DotNetNuke.Entities.Urls.AdvancedFriendlyUrlProvider.FriendlyUrl(TabInfo tab, String path, String pageName, PortalSettings portalSettings) in C:\TeamCity\buildAgent\work\DNN_Platform_803_Public\Packaging\DNN.Platform\DNN Platform\Library\Entities\Urls\AdvancedFriendlyUrlProvider.cs:line 81
at DotNetNuke.Common.Globals.NavigateURL(Int32 tabID, Boolean isSuperTab, PortalSettings settings, String controlKey, String language, String pageName, String[] additionalParameters) in C:\TeamCity\buildAgent\work\DNN_Platform_803_Public\Packaging\DNN.Platform\DNN Platform\Library\Common\Globals.cs:line 3091
at DotNetNuke.Common.Globals.NavigateURL(Int32 tabID, String controlKey, String[] additionalParameters) in C:\TeamCity\buildAgent\work\DNN_Platform_803_Public\Packaging\DNN.Platform\DNN Platform\Library\Common\Globals.cs:line 2969
at DotNetNuke.Common.Globals.LoginURL(String returnURL, Boolean override) in C:\TeamCity\buildAgent\work\DNN_Platform_803_Public\Packaging\DNN.Platform\DNN Platform\Library\Common\Globals.cs:line 2839
at DotNetNuke.Common.Globals.AccessDeniedURL(String Message) in C:\TeamCity\buildAgent\work\DNN_Platform_803_Public\Packaging\DNN.Platform\DNN Platform\Library\Common\Globals.cs:line 2523
at DotNetNuke.UI.Skins.Skin.ProcessMasterModules() in C:\TeamCity\buildAgent\work\DNN_Platform_803_Public\Packaging\DNN.Platform\DNN Platform\Library\UI\Skins\Skin.cs:line 439
at DotNetNuke.UI.Skins.Skin.OnInit(EventArgs e) in C:\TeamCity\buildAgent\work\DNN_Platform_803_Public\Packaging\DNN.Platform\DNN Platform\Library\UI\Skins\Skin.cs:line 605
at System.Web.UI.Control.InitRecursive(Control namingContainer)
at System.Web.UI.Control.AddedControl(Control control, Int32 index)
at DotNetNuke.Framework.DefaultPage.OnInit(EventArgs e) in C:\TeamCity\buildAgent\work\DNN_Platform_803_Public\Packaging\DNN.Platform\Website\Default.aspx.cs:line 686
at System.Web.UI.Control.InitRecursive(Control namingContainer)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
Every time this happens I either restart the application, restart IIS, or restart the server, then everything starts working again. This is getting increasingly frustrating, so I'd appreciate any advice on how to resolve this. What's strange is we have a second DNN server on the same version using the same advanced URL format settings, but sites on that server never run into problems. Has anyone else seen anything like this?