2014-01-21 30 views
0

我很抱歉我的英語。 我試圖把一個自定義提供程序,但是當我在我的SiteMapDataSource提供程序中寫入時,沒有任何更改。當我更改自己的ID並相應地更改其DataSourceID頁面中的屬性時,會出現一個錯誤,說明它不是。他記得TopSiteMap ID並且不想編譯其他。無法更改aspmenu中的DataSourceID


提供者已在Web配置中註冊並且在其他網站集中正常工作。但是這個人有一個bug。

如果如所描述的主頁菜單:
<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必須是類型的控制的ID IHierarchicalDataSource。無法找到ID爲「topCrossSiteMap」的控件。

而且在ULS在2毫秒請求記錄而不correletion ID之前訪問內容數據庫時有以下錯誤:

PermissionMask檢查失敗。要求0x00010000在,已00000000

拒絕訪問。異常: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。

而另一個細節:網站集的不同面孔以不同的方式顯示。 (其中一個退出錯誤,另一個沒有任何改變) 首先想到在對象http.sys中的問題。 試圖重新啓動WFE服務器。但它沒有幫助。

+0

歡迎來到StackOver社區。你能否提供我們你的代碼和表格結構,以便我們能夠更好地幫助你? – Marek

+0

@Marek謝謝。我希望對你有所幫助。我添加了更詳細的說明。 – Musisimaru

回答

0

我找到了解決方案。但我找不到解釋。 還有一些物種緩存的情況。


當我改變Delegate¡ontrol這兩個ID,頁面加載沒有錯誤。