Domanda

Abbiamo una webpart di navigazione personalizzata che utilizza PortalSiteMapProvider di MOSS per creare una navigazione nel menu. Sembra che il provider non stia gestendo i suoi oggetti. Qualche idea su come gestire gli oggetti che vengono creati nel provider?

Sta causando errori di registro in questo modo:

Numero potenzialmente eccessivo di oggetti SPRequest (9) attualmente inediti sul thread 1. Assicurarsi che questo oggetto o il suo genitore (come SPWeb o SPSite) siano smaltiti correttamente. ID allocazione per questo oggetto: {56D66DBA-AE72-42DF-A70F-B45E05A60A08} Traccia stack dell'allocazione corrente:
su Microsoft.SharePoint.SPRequestManager.Add (richiesta SPRequest, booleana condivisibile)
at Microsoft.SharePoint.SPGlobal.CreateSPRequestAndSetIdentity (Boolean bNotGlobalAdminCode, String strUrl, Boolean bNotAddToContext, Byte [] UserToken, String userName, Boolean bIgnoreTokenTimeout, Boolean bAsnonymous
su Microsoft.SharePoint.SPWeb.InitializeSPRequest ()
su Microsoft.SharePoint.SPWeb.EnsureSPRequest ()
su Microsoft.SharePoint.SPWeb.get_Request ()
su Microsoft.SharePoint.SPWeb.InitWebPublic ()
su Microsoft.SharePoint.SPWeb.get_Exists ()
su Microsoft.SharePoint.Publishing.CachedObjectFactory.CreateWebFromUrl (URL stringa)
su Microsoft.SharePoint.Publishing.Navigation.SPNavigationSiteMapNode..ctor (PortalWebSiteMapNode webNode, nodo SPNavigationNode, PortalSiteMapNode parentNode, tipo NodeTypes, URL stringa, titolo stringa, descrizione stringa)
at Microsoft.SharePoint.Publishing.Navigation.SPNavigationSiteMapNode.CreateSPNavigationSiteMapNode (PortalWebSiteMapNode webNode, SPNavigationNode node, PortalSiteMapNode parentNode)
presso Microsoft.SharePoint.Publishing.Navigation.PortalWebSiteMapNode.ProcessSPNavigationNode (nodo SPNavigationNode, SPNavigationNode previousSibling, PortalSiteMapNode parentNode)
presso Microsoft.SharePoint.Publishing.Navigation.PortalWebSiteMap.Node.PopulateNavigationChildren ()
presso Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapNode.GetNavigationChildren (NodeTypes includedTypes, NodeTypes includedHiddenTypes, OrderingMethod ordering, AutomaticSortingMethod method, Boolean ascending, Int32 lcid)
presso Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapNode.GetNavigationChildren (NodeTypes includedHiddenTypes)
presso Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider.GetChildNodes (nodo PortalSiteMapNode, NodeTypes includedHiddenTypes)
su Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider.GetChildNodes (nodo SiteMapNode)
su System.Web.SiteMapNode.get_ChildNodes ()
presso Microsoft.SharePoint.Publishing.Navigation.PortalHierarchicalEnumerable.System.Collections.IEnumerable.GetEnumerator ()
at System.Web.UI.WebControls.Menu.DataBindRecursive (nodo MenuItem, IHierarchicalEnumerable enumerable)
at System.Web.UI.WebControls.Menu.DataBindRecursive (nodo MenuItem, IHierarchicalEnumerable enumerable)
at System.Web.UI.WebControls.Menu.DataBindItem (voce MenuItem)
at System.Web.UI.WebControls.Menu.PerformDataBinding ()
at System.Web.UI.WebControls.HierarchicalDataBoundControl.PerformSelect ()
at System.Web.UI.WebControls.BaseDataBoundControl.DataBind ()
su System.Web.UI.WebControls.Menu.DataBind ()
at System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound ()
at System.Web.UI.WebControls.Menu.EnsureDataBound ()
at System.Web.UI.WebControls.BaseDataBoundControl.OnPreRender (EventArgs e)
su System.Web.UI.WebControls.Menu.OnPreRender (EventArgs e, Boolean registerScript)
su System.Web.UI.WebControls.Menu.OnPreRender (EventArgs e)
presso Microsoft.SharePoint.WebControls.AspMenu.OnPreRender (EventArgs e)
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.Control.PreRenderRecursiveInternal ()
at System.Web.UI.Control.PreRenderRecursiveInternal ()
at System.Web.UI.Control.PreRenderRecursiveInternal ()
at System.Web.UI.Page.ProcessRequestMain (include booleaniStagesBeforeAsyncPoint, booleani includeStagesAfterAsyncPoint)
at System.Web.UI.Page.ProcessRequest (include booleaniStagesBeforeAsyncPoint, booleani includeStagesAfterAsyncPoint)
at System.Web.UI.Page.ProcessRequest () at System.Web.UI.Page.ProcessRequestWithNoAssert (contesto HttpContext)
su System.Web.UI.Page.ProcessRequest (contesto HttpContext) su ASP.VIEWPAGE_ASPX_2077083467.ProcessRequest (contesto HttpContext)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute ()
su System.Web.HttpApplication.ExecuteStep (IExecutionStep step, Boolean & amp; completato in modo sincrono)
at System.Web.HttpApplication.ApplicationStepManager.ResumeSteps (errore eccezione)
at System.Web.HttpApplication.System.Web.IHttpAsyncHandler.BeginProcessRequest (HttpCont

È stato utile?

Soluzione

Il post sul blog di Stefan Go & # 223; ner sembra rispondere alla domanda. Il problema non è che gli oggetti SPWeb non vengono chiusi, ma che una volta raggiunta una determinata soglia (per impostazione predefinita 8) delle allocazioni, l'avviso viene creato nel registro. A seconda della struttura del tuo sito, il numero che verrà creato varierà. Data la natura nidificata della navigazione, gli oggetti vengono mantenuti aperti mentre l'albero secondario viene attraversato. Quindi gli oggetti sono correttamente eliminati, è solo che più di 8 (per impostazione predefinita) vengono tenuti aperti in un determinato momento.

Vedi questa domanda

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top