영어로 죄송합니다. 사용자 지정 공급자를 넣으려고하지만 SiteMapDataSource 공급자에 쓸 때 아무 것도 변경되지 않습니다. ID를 변경하면 그에 따라 DataSourceID 페이지에서 속성을 변경하면 오류가 발생합니다. 그는 TopSiteMap ID를 기억하고 다른 것을 컴파일하고 싶지 않습니다.aspmenu에서 DataSourceID를 변경할 수 없습니다.
공급자가 웹 구성 및 다른 사이트 모음에 제대로 등록되어 있습니다. 그러나 이것은 버그가있었습니다.
한 바와 같이, 마스터 페이지 메뉴의 경우가 System.Web.HttpException : 'TopNavigationMenuV4'의 DataSourceID 유형의 컨트롤의 ID이어야
<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>
예외를 throw IHierarchicalDataSource. ID가 'topCrossSiteMap'인 컨트롤을 찾을 수 없습니다. 콘텐츠 데이터베이스를 액세스 할 때
그리고 2 밀리 초 단위로 ULS에
correletion의 ID없이 기록을 요청하기 전에 오류를 다음과 같습니다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를 사용하고 있습니다.
다른 세부 정보 : 사이트 모음의 다른 얼굴이 다른 방식으로 표시됩니다. (다른 하나는 오류가 하나도 빠져 나갔다.) 처음에는 개체 http.sys의 문제라고 생각했습니다. WFE 서버를 다시 시작하려고했습니다. 그러나 도움이되지 않았습니다.
StackOver 커뮤니티에 오신 것을 환영합니다. 더 나은 도움을 줄 수 있도록 코드와 테이블 구조를 제공해 주시겠습니까? – Marek
@Marek 고맙습니다. 나는 너에게 도움이되기를 희망한다. 나는 더 자세한 설명을 추가했다. – Musisimaru