1

MOSS の PortalSiteMapProvider を使用してメニュー ナビゲーションを構築するカスタム ナビゲーション Web パーツがあります。プロバイダーがそのオブジェクトを管理していないようです。プロバイダーで作成されているオブジェクトを管理する方法について何か考えはありますか?

次のようなログ エラーが発生しています。

スレッド 1 で現在解放されていない SPRequest オブジェクト (9) の数が多すぎる可能性があります。このオブジェクトまたはその親 (SPWeb や SPSite など) が適切に破棄されていることを確認してください。このオブジェクトの割り当て ID: {56D66DBA-AE72-42DF-A70F-B45E05A60A08} 現在の割り当てのスタック トレース:
Microsoft.SharePoint.SPRequestManager.Add(SPRequest request, Boolean shareable)
at Microsoft.SharePoint.SPGlobal.CreateSPRequestAndSetIdentity(Boolean bNotGlobalAdminCode,文字列 strUrl、ブール型 bNotAddToContext、Byte[] UserToken、文字列 userName、ブール型 bIgnoreTokenTimeout、ブール型 bAsAnonymous)
(Microsoft.SharePoint.SPWeb.InitializeSPRequest()
では Microsoft.SharePoint.SPWeb.EnsureSPRequest()
では Microsoft.SharePoint.SPWeb.get_Request())
Microsoft.SharePoint.SPWeb.InitWebPublic()
で Microsoft.SharePoint.SPWeb.get_Exists()
で Microsoft.SharePoint.Publishing.CachedObjectFactory.CreateWebFromUrl(String url)
で Microsoft.SharePoint.Publishing.Navigation.SPNavigationSiteMapNode..ctor(PortalWebSiteMapNode webNode 、SPNavigationNode ノード、PortalSiteMapNode 親ノード、NodeTypes タイプ、文字列 URL、文字列タイトル、文字列説明)
Microsoft.SharePoint.Publishing.Navigation.SPNavigationSiteMapNode.CreateSPNavigationSiteMapNode(PortalWebSiteMapNode webNode、SPNavigationNode ノード、PortalSiteMapNode 親ノード)
Microsoft.SharePoint.Publishing.Navigation. PortalWebSiteMapNode.ProcessSPNavigationNode(SPNavigationNode ノード、SPNavigationNode previousSibling、PortalSiteMapNode 親ノード)
Microsoft.SharePoint.Publishing.Navigation.PortalWebSiteMap.Node.PopulateNavigationChildren()
で Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapNode.GetNavigationChildren (NodeTypes includedTypes、NodeTypes includedHiddenTypes、OrderingMethod 順序付け、AutomaticSortingMethod メソッド、Boolean 昇順、Int32 lcid)
Microsoft. Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapNode.GetNavigationChildren ( NodeTypes に含まれる HiddenTypes)
で Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider.GetChildNodes (PortalSiteMapNode ノード、NodeTypes に含まれる HiddenTypes)
で Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider.GetChildNodes (SiteMapNode ノード)
で System .Web.SiteMapNode.get_ChildNodes()
Microsoft.SharePoint.Publishing.Navigation.PortalHierarchicalEnumerable.System.Collections.IEnumerable.GetEnumerator()
で System.Web.UI.WebControls.Menu.DataBindRecursive (MenuItem ノード、IHierarchicalEnumerable 列挙可能)
で System.Web.UI.WebControls.Menu で。 System.Web.UI.WebControls.Menu.PerformDataBinding () で System.Web.UI.WebControls.Menu.PerformDataBinding() で
System.Web.UI.WebControls.Menu.DataBindItem(MenuItem 項目)でDataBindRecursive (MenuItem ノード、IHierarchicalEnumerable 列挙可能) 。 () System.Web.UI.WebControls.BaseDataBoundControl.DataBind() で System.Web.UI.WebControls.Menu.DataBind() で System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() で





System.Web.UI.WebControls.Menu.EnsureDataBound()
で System.Web.UI.WebControls.BaseDataBoundControl.OnPreRender(EventArgs e)
で System.Web.UI.WebControls.Menu.OnPreRender(EventArgs e, Boolean registerScript)
でSystem.Web.UI.WebControls.Menu.OnPreRender(EventArgs e)
で Microsoft.SharePoint.WebControls.AspMenu.OnPreRender(EventArgs e)
で System.Web.UI.Control.PreRenderRecursiveInternal()
で System.Web.UI.Control. PreRenderRecursiveInternal()
で System.Web.UI.Control.PreRenderRecursiveInternal()
で System.Web.UI.Control.PreRenderRecursiveInternal()
で System.Web.UI.Control.PreRenderRecursiveInternal()
で System.Web.UI.Control.PreRenderRecursiveInternal( )
System.Web.UI.Control.PreRenderRecursiveInternal()
で System.Web.UI.Page.ProcessRequestMain (ブール値 includeStagesBeforeAsyncPoint、ブール値 includeStagesAfterAsyncPoint)
で System.Web.UI.Page.ProcessRequest (ブール値 includeStagesBeforeAsyncPoint、ブール値 includeStagesAfterAsyncPoint)
で System.Web ASP.VIEWPAGE_ASPX_2077083467 の System.Web.UI.Page.ProcessRequest(HttpContext コンテキスト)の System.Web.UI.Page.ProcessRequestWithNoAssert
(HttpContext コンテキスト) の .UI.Page.ProcessRequest()
.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
System.Web.HttpApplication.ExecuteStep で (IExecutionStep ステップ、ブール値 & completedSynchronously)
System.Web.HttpApplication.ApplicationStepManager.ResumeSteps (例外エラー)
で System.Web.HttpApplication.System.Web.IHttpAsyncHandler.BeginProcessRequest (HttpCont ) で

4

1 に答える 1

4

StefanGoßnerのブログ投稿が質問に答えているようです。問題は、SPWebオブジェクトが閉じられていないことではなく、割り当ての特定のしきい値(デフォルトは8)に達すると、ログに警告が作成されることです。サイトの構造に応じて、作成される数は異なります。ナビゲーションのネストされた性質を考えると、サブツリーがトラバースされている間、オブジェクトは開いたままになります。したがって、オブジェクト正しく廃棄されます。特定の時間に8つ以上(デフォルト)が開いたままになっているだけです。

この質問を参照してください

于 2008-11-06T21:58:07.160 に答える