問題タブ [portalsitemapprovider]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sharepoint - 過剰な SPRequest オブジェクトを引き起こす PortalSiteMapProvider
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 ) で
sharepoint - PortalSiteMapProvider
PortalSiteMapProvider インスタンスをインスタンス化するたびに、常にデフォルトでルート Web サイト コレクションになります。
アプリケーションページとは別のコレクションからサイトマップを取得できるようにしたい。
このため、このアプリケーション ページは _layouts の下にあり、どのサイト コレクションでもホストされていないため、コンテキストは既定でルート Web になります。
アプリケーション ページからルート Web 以外のサイト コレクションへのインスタンスを取得するにはどうすればよいですか?
ありがとう。
asp.net - カスタムSharePointナビゲーション2レベルの深さ
2つの子サイトを持つルートサイトで構成される単純なサイトがあります。
ここで、3つのサイトすべてのナビゲーションをまったく同じにして、次のように読みます。
ルートサイト| 子サイト1| 子サイト2
現在選択されているサイトが強調表示されます。
asp:repeaterコントロールとportalsitemapproviderを使用して、これをほぼ手動で行うことができました。問題は、ナビゲーションでルートサイトのみを取得できる(ShowStartingNodeをTrueに設定)か、子サイトのみを取得できることです。両方を取得することはできません。
sharepoint:aspmenuコントロールを使用し、staticdisplaylevelsを2に設定すると、両方を取得できることはわかっていますが、このコントロールが吐き出す厄介なコードは好きではありません。基本的に、私は自分の準拠したcssにラップされたこのコントロールの動作をエミュレートしたいと思います。何か案は?
- また、追加として、私がそれをどのように持つことができるかについて誰かが考えているので、subsite1 / 2に後続のサブサイト/ページがある場合、ユーザーがナビゲートしている階層の深さのレベルに関係なく、関連するサブサイト1またはsubsite2?私の現在の方法では、currentnodeを各プロバイダーノードと比較して、強調表示する必要があるノードを特定しますが、ユーザーが各サブサイトのランディングページから移動すると、これは機能しません。
ありがとう!
asp.net - PortalSiteMapプロバイダー コード アクセス セキュリティ要件
portalsitemapprovider オブジェクトを使用してナビゲーション サーバー コントロールを作成しています。
コントロール CAS で SharePoint オブジェクト モデル アクセスと偽装権限を割り当てました。ただし、これにもかかわらず、サイトマップのルート ノードの子ノードを取得できず、エラーが返されます。
Web アプリを完全信頼で実行するように変更すると、子ノードを取得できます。
したがって、私の質問は、サイトマップ プロバイダー オブジェクトのデータに完全にアクセスするには、どの CAS ポリシーが必要かということです。ルート ノードにアクセスできるのに、現在は子ノードにアクセスできないのはなぜですか?
コード例:
私のアセンブリには、次の CAS 要求があります。
配置マニフェストに適切な IPermission エントリがある。Web アプリのデプロイ後、期待どおりに web.config が WSS_Custom 信頼レベルに更新されます。
何か案は?
ありがとう
sharepoint - イベント レシーバーの SPContext (PortalSiteMapProvider)
PortalSiteMapProvider を使用するイベント レシーバーを作成しようとしています。イベント レシーバー内にHTTPContextまたは SPContext を持たない場合、PortalSiteMapProvider にアクセスするにはどうすればよいでしょうか?
asp.net - SharePointカスタム現在のナビゲーション/PortalSiteMapProvider
SharePointソリューションのカスタムの現在の(左)ナビゲーションに取り組んでいます。
私が必要としているのは、ナビゲーションのルートがバリエーションWebであり、ルートWebの直接の子であるということです。このバリエーションの直接の子であるすべてのサイトとページは、展開されていなくても表示されるはずです。現在のサイトの祖先であるサイトのみを展開する必要があります...現在のサイト/ページまでずっと拡張する必要があります。
例...ページから始めるとhttp://spsite.ex/variation/site2/subsite2.1/subsite2.1.1/subsite2.1.1.3/page.aspx
...
次に、リンクをクリックすると、次のSubSite2.1
ようなものが表示されます...
次に移動するhttp://spsite.ex/variation/site5/subsite5.1/page.aspx
と、次のようなものが表示されます...
私は解決策を書きましたが、それは私が誇りに思うべきものではないように感じます。現在のWebの祖先を除いて、子ノードを取得しないようにオーバーライドしてAspMenu
、ほぼ無限大StaticDisplayLevels
に拡張してから拡張しました。PortalSiteMapProvider
GetChildNode(node)
sharepoint-2010 - SharePoint 2010: PortalSiteMapProvider を特定のサイト コレクションにポイントする
OOTB PortalSiteMapProvider を取得して、SharePoint 2010 で指定されたサイト コレクションまたは URL (つまり、現在のサイト コレクションではない) からサイト階層を提供することはできますか? MOSS では、これは、カスタム SiteMapProvider を作成し、サイト コレクションを走査し、ナビゲーション ツリーを手動で構築することによってのみ可能でした。
注: 通常のサイトの寄稿者はファイル システム上のファイルにアクセスできない可能性があるため、静的 XML (.sitemap) ファイルから読み取るカスタム SiteMapProvider を作成する準備はできていません。
ちょっとした背景... 2 つのサイト コレクションを持つ単一の Web アプリケーションがあります。
- http://intranet/のイントラネット ポータル用に 1 つ(公開が有効)
- http://intranet/my の個人用サイト用に 1 (発行が有効になっていない)
複数のポータルを容易にする計画はないので、両方のサイト コレクションで一貫したグローバル ナビゲーション バーが必要です。理想的には、メイン ポータル サイトからのサイト階層を個人用サイトに表示したいと考えています。PortalSiteMapProvider.CurrentSiteプロパティを"http ://intranet/my"ではなく"http://intranet/"に設定することは可能ですか?
sharepoint-2010 - PotalSiteMapProvider がページを返さない
PotalSiteMapProvider はページを返しません。次のようにコードを使用します。
デバッガーで調べたところ、thisCollection には子がありませんが、thisNode はページを持つ SubSite Node です。そのノードにあるページを取得するにはどうすればよいですか? ありがとう!