0

私の英語でごめんなさい。カスタム プロバイダーを配置しようとしていますが、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 サーバーを再起動しようとしました。しかし、それは役に立ちませんでした。

4

1 に答える 1

0

解決策を見つけました。しかし、私は説明を見つけることができませんでした。一部の種のキャッシングでは、まだそうです。


DelegateСontrol の両方の ID を変更すると、ページはエラーなしで読み込まれます。

于 2014-01-22T16:08:14.660 に答える