无法在aspmenu中更改DataSourceID

时间:2014-01-21 23:00:43

标签: sharepoint master-pages sitemapprovider

对不起我的英语。 我正在尝试使用自定义提供程序,但是当我在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”的控件。

在请求没有相关ID的记录之前2毫秒内在ULS中访问内容数据库时出现以下错误:

  

PermissionMask检查失败。要求0x00010000,有0x00000000

  

拒绝访问。例外:System.UnauthorizedAccessException:访问被拒绝。 (HRESULT异常:0x80070005(E_ACCESSDENIED))
   在Microsoft.SharePoint.Library.SPRequestInternalClass.GetWebMetainfo(String bstrUrl)
   在Microsoft.SharePoint.Library.SPRequest.GetWebMetainfo(String 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。

另一个细节:以不同方式显示网站集的不同面孔。 (一个丢失的错误,另一个没有改变) 首先想到的是http.sys对象中的问题。 试图重启WFE服务器。但它没有帮助。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。但我找不到解释。 某些物种缓存的情况仍然如此。


当我在DelegateСontrol中更改了两个ID时,页面加载时没有错误。