私の英語でごめんなさい。カスタム プロバイダーを配置しようとしていますが、SiteMapDataSource プロバイダーに記述しても何も変わりません。彼の ID を変更し、それに応じて DataSourceID ページでその属性を変更すると、そうではないというエラーが発生します。彼は TopSiteMap ID を覚えていて、それ以外をコンパイルしたくありません。
プロバイダーは Web 構成に登録されており、他のサイト コレクションは正常に機能しています。しかし、これにはバグがありました。
説明されているマスター ページ メニューの場合:<SharePoint:AspMenu
ID="TopNavigationMenuV4"
Runat="server"
EnableViewState="false"
DataSourceID="topCrossSiteMap"
AccessKey="<%$Resources:wss,navigation_accesskey%>"
UseSimpleRendering="true"
UseSeparateCss="false"
Orientation="Horizontal"
StaticDisplayLevels="1"
MaximumDynamicDisplayLevels="3"
SkipLinkText=""
CssClass="s4-tn"/>
<SharePoint:DelegateControl runat="server" ControlId="TopNavigationDataSource" Id="topNavigationDelegate">
<Template_Controls>
<asp:SiteMapDataSource
ShowStartingNode="False"
SiteMapProvider="CrossSiteMapProvider"
id="topCrossSiteMap"
runat="server" />
</Template_Controls>
</SharePoint:DelegateControl>
例外をスローします:
System.Web.HttpException: 'TopNavigationMenuV4' の DataSourceID は、タイプ IHierarchicalDataSource のコントロールの ID でなければなりません。ID「topCrossSiteMap」のコントロールが見つかりませんでした。
ULS では、相関 ID のないレコードを要求する前に 2 ミリ秒で、コンテンツ データベースにアクセスするときに次のエラーが発生します。
PermissionMask チェックに失敗しました。0x00010000 を要求し、0x00000000 を持っています
と
説明されているマスター ページ メニューの場合:アクセスが拒否されました。例外: System.UnauthorizedAccessException: アクセスが拒否されました。(HRESULT からの例外: 0x80070005 (E_ACCESSDENIED))
Microsoft.SharePoint.Library.SPRequestInternalClass.GetWebMetainfo (文字列 bstrUrl)
で Microsoft.SharePoint.Library.SPRequest.GetWebMetainfo (文字列 bstrUrl)。
<SharePoint:AspMenu
ID="TopNavigationMenuV4"
Runat="server"
EnableViewState="false"
DataSourceID="topSiteMap"
AccessKey="<%$Resources:wss,navigation_accesskey%>"
UseSimpleRendering="true"
UseSeparateCss="false"
Orientation="Horizontal"
StaticDisplayLevels="1"
MaximumDynamicDisplayLevels="3"
SkipLinkText=""
CssClass="s4-tn"/>
<SharePoint:DelegateControl runat="server" ControlId="TopNavigationDataSource" Id="topNavigationDelegate">
<Template_Controls>
<asp:SiteMapDataSource
ShowStartingNode="False"
SiteMapProvider="CrossSiteMapProvider"
id="topCrossSiteMap"
runat="server" />
</Template_Controls>
</SharePoint:DelegateControl>
すべてがエラーなしで機能します。しかし、メニューは明らかに SPNavigationProvider を使用しています。
もう 1 つの詳細:サイト コレクションのさまざまな面がさまざまな方法で表示されます。(1 つは他の何も変更されていないエラーをドロップアウトしました) 最初に、オブジェクト http.sys の問題と考えました。WFE サーバーを再起動しようとしました。しかし、それは役に立ちませんでした。