SPNote

SharePoint Notes

Document Library Pager 에서 RENDER FAILED 발생시에는?

Document Library 에서 다음 페이지를 눌렀을때 아래와 같은 에러 메시지가 나타났을때의 처리 방법

(상황)
Document Library 에는 약 140 개의 문서 Item 이 저장되어 있었고 정렬이 수정일 기준 내림차순으로 기본 뷰가 수정되어 최신 글이 상위로 가는 지극히 국내 환경에 맞는 일반적인 형태로 기본 뷰가 구성되어 있었습니다.

(에러 메시지)
- EN: "<!-- #RENDER FAILED# -->"
- KR: "<!-- #렌더에 실패하였습니다.# -->"

(이유)
이 에러가 발생하는 이유는 SQL Server 의 SharePoint 관리 계정의 언어가 non-English(US) 인 경우에 발생합니다. 이는 날짜 형식이 영어가 아닌 언어로 선택되어 있을 경우에 문제가 발생한다고 합니다.

당연히 한국에서는 한글 제품을 사용하므로 기본 한글이 설정하기에 이는 버그로 보는 것이 맞을 것 같지만 정식 지원이 만료되어 MS 에 패치 등을 요청해도 될지는 모르겠습니다.

(해결: △)
우선 관련 이슈에 대한 내용이 MS 지원에 나타나있으나 해결에는 도움이 되지 않았습니다.
1. Group By View
  - 여전히 렌더링 실패
2. DB 관리 계정의 언어 변경
  - 보통 이 계정이 시스템 계정으로 기 적용된 설정 등과 변경 후 영향을 고려하여 변경 불가

(대안)
사용자의 목적은 작성 글 기준 내림차순이므로 문제가 되는 날짜가 아닌 숫자인 ID 를 필드로 설정하면 수정일까지는 아니지만 작성일 기준 내림차순 효과를 나타낼 수 있습니다.

(참고)
Error message when you try to expand an entry in a Grouped By view
in Windows SharePoint Services, in SharePoint Server 2007, or in SharePoint Portal Server 2003
:
"<!-- #RENDER FAILED# -->"

Document Library Pager 에서 RENDER FAILED 발생시에는?

Document Library 에서 다음 페이지를 눌렀을때 아래와 같은 에러 메시지가 나타났을때의 처리 방법

(상황)
Document Library 에는 약 140 개의 문서 Item 이 저장되어 있었고 정렬이 수정일 기준 내림차순으로 기본 뷰가 수정되어 최신 글이 상위로 가는 지극히 국내 환경에 맞는 일반적인 형태로 기본 뷰가 구성되어 있었습니다.

(에러 메시지)
- EN: "<!-- #RENDER FAILED# -->"
- KR: "<!-- #렌더에 실패하였습니다.# -->"

(이유)
이 에러가 발생하는 이유는 SQL Server 의 SharePoint 관리 계정의 언어가 non-English(US) 인 경우에 발생합니다. 이는 날짜 형식이 영어가 아닌 언어로 선택되어 있을 경우에 문제가 발생한다고 합니다.

당연히 한국에서는 한글 제품을 사용하므로 기본 한글이 설정하기에 이는 버그로 보는 것이 맞을 것 같지만 정식 지원이 만료되어 MS 에 패치 등을 요청해도 될지는 모르겠습니다.

(해결: △)
우선 관련 이슈에 대한 내용이 MS 지원에 나타나있으나 해결에는 도움이 되지 않았습니다.
1. Group By View
  - 여전히 렌더링 실패
2. DB 관리 계정의 언어 변경
  - 보통 이 계정이 시스템 계정으로 기 적용된 설정 등과 변경 후 영향을 고려하여 변경 불가

(대안)
사용자의 목적은 작성 글 기준 내림차순이므로 문제가 되는 날짜가 아닌 숫자인 ID 를 필드로 설정하면 수정일까지는 아니지만 작성일 기준 내림차순 효과를 나타낼 수 있습니다.

(참고)
Error message when you try to expand an entry in a Grouped By view
in Windows SharePoint Services, in SharePoint Server 2007, or in SharePoint Portal Server 2003
:
"<!-- #RENDER FAILED# -->"

Loopback configuration

2009년 여름 즈음 개발 PC 설치 작업을 하던 중 Windows 2003 Server 에 SharePoint 2007 을 설치하고 접속을 하려는데 인증창이 나타나고 별 생각없이 계정정보를 넣지만 인증이 되지 않고 급기야 3번이 넘어가서는 하얀색 화면이 나타났던 기억이 납니다. 로컬 PC 에서 개발할때는 보통 호스트 이름으로 접속을 하기에 자연스럽게 NTLM 인증이 되고 인증창 이슈 등은 없었는데 갑자기 나타난 상황에 잠시 당황을 했었습니다.

요즘엔 SPS 2003 환경에서 일을 하고 있고 설마 신규 환경을 구축할까 의문을 가지고 있었으나 의외로 많이 생기고 있습니다. Windows 2003 에 SPS 2003 을 설치, 포털 사이트를 하나 만들고 custom host header 에 ex. wss20.spnote.com (로컬) 을 할당하고 접속을 하니 과거에 경험했던 인증창이 계속 나타나고 HTTP 401.1 - Unauthorized: Logon Failed 이 나타났습니다.

# 401.1 - Unauthorized: Logon Failed

흠... 그런데 과거에 경험했음에도 한번에 Loopback 관련이라고 한번에 생각이 나지 않아서 Fiddler 부터 켜고 HTTP 코드부터 봤는데 역시나 검색하니 잘 나옵니다. 결론은 Windows 2003 Server Service Pack 1 부터 loopback 검사가 포함이 되서 그렇다고 합니다. 로컬 서버에서 FQDN 이나 custom host 로 접속하면 이 조건에 걸려서 로긴이 되지 않습니다. 이때 타 PC 등에서 custom host header 를 hosts 파일에 저장하고 접속을 시도하면 잘 되는데 여기서 이상한 상상하면 해결하기 어렵습니다.

접근 시도는 아래와 같습니다.
1. NTLM 인데 인증창이 나타남?
2. 올바른 계정인데도 401.1 나타남?

해결은 레지스트리를 수정해야 합니다.
1. Loopback 을 허용하는 사이트 추가 (권장)
2. Loopback 점검 제거 (disable)

# MS 에서 비추하지만 로컬이니 PASS

자세한 설명과 레지스트리 설정 방법은 아래의 링크를 참조하시면 됩니다.
http://support.microsoft.com/kb/896861 

Loopback configuration

2009년 여름 즈음 개발 PC 설치 작업을 하던 중 Windows 2003 Server 에 SharePoint 2007 을 설치하고 접속을 하려는데 인증창이 나타나고 별 생각없이 계정정보를 넣지만 인증이 되지 않고 급기야 3번이 넘어가서는 하얀색 화면이 나���났던 기억이 납니다. 로컬 PC 에서 개발할때는 보통 호스트 이름으로 접속을 하기에 자연스럽게 NTLM 인증이 되고 인증창 이슈 등은 없었는데 갑자기 나타난 상황에 잠시 당황을 했었습니다.

요즘엔 SPS 2003 환경에서 일을 하고 있고 설마 신규 환경을 구축할까 의문을 가지고 있었으나 의외로 많이 생기고 있습니다. Windows 2003 에 SPS 2003 을 설치, 포털 사이트를 하나 만들고 custom host header 에 ex. wss20.spnote.com (로컬) 을 할당하고 접속을 하니 과거에 경험했던 인증창이 계속 나타나고 HTTP 401.1 - Unauthorized: Logon Failed 이 나타났습니다.

# 401.1 - Unauthorized: Logon Failed

흠... 그런데 과거에 경험했음에도 한번에 Loopback 관련이라고 한번에 생각이 나지 않아서 Fiddler 부터 켜고 HTTP 코드부터 봤는데 역시나 검색하니 잘 나옵니다. 결론은 Windows 2003 Server Service Pack 1 부터 loopback 검사가 포함이 되서 그렇다고 합니다. 로컬 서버에서 FQDN 이나 custom host 로 접속하면 이 조건에 걸려서 로긴이 되지 않습니다. 이때 타 PC 등에서 custom host header 를 hosts 파일에 저장하고 접속을 시도하면 잘 되는데 여기서 이상한 상상하면 해결하기 어렵습니다.

접근 시도는 아래와 같습니다.
1. NTLM 인데 인증창이 나타남?
2. 올바른 계정인데도 401.1 나타남?

해결은 레지스트리를 수정해야 합니다.
1. Loopback 을 허용하는 사이트 추가 (권장)
2. Loopback 점검 제거 (disable)

# MS 에서 비추하지만 로컬이니 PASS

자세한 설명과 레지스트리 설정 방법은 아래의 링크를 참조하시면 됩니다.
http://support.microsoft.com/kb/896861 

Stop when creating a team site

When you create a team site, you could meet the issue which is the OK button is disabled when you click the button at Add Link to Site page. If you click the OK or Cancel button, the page stops responding.
Page Url is : /SiteDirectory/Lists/Sites/NewForm.aspx

# The issue occured page

 This issue occurs after I installed Microsoft Windows 2003 Service pack 2 (SP2) on the server and I found out this issue can be solved by upgrading SP2 to SP3 and also this issue occurs when SP1 with security update 933854 or together with security update 928365.

Here is a link for SP3.
Download the SharePoint Portal Server 2003 Service Pack 3 (SP3) package now.

 

There's a another way you could solve this issue but not recommended.
Not recommended is meaning that you should edit a SharePoint file but this could occur some other issues and microsoft will not allow this (like it could affect when you upgrade future service packs). Anyways, this can be useful for someone who has this issue but he or she cannot upgrade to SP3 for now.

 [Resolution]

  1. Open \60\TEMPLATE\1033\SPSSITES\LISTS\SITESLST\NewForm.aspx
  2. Go to line 90
  3. Change the InputFormButtonAtBottom to plain Input tag

 From
<SPSWC:InputFormButtonAtBottom ID="ButtonOk" runat="server" TextLocId="Page_OkButton_Text"/>

 To


 

 

Stop when creating a team site

When you create a team site, you could meet the issue which is the OK button is disabled when you click the button at Add Link to Site page. If you click the OK or Cancel button, the page stops responding.
Page Url is : /SiteDirectory/Lists/Sites/NewForm.aspx

# The issue occured page

 This issue occurs after I installed Microsoft Windows 2003 Service pack 2 (SP2) on the server and I found out this issue can be solved by upgrading SP2 to SP3 and also this issue occurs when SP1 with security update 933854 or together with security update 928365.

Here is a link for SP3.
Download the SharePoint Portal Server 2003 Service Pack 3 (SP3) package now.

 

There's a another way you could solve this issue but not recommended.
Not recommended is meaning that you should edit a SharePoint file but this could occur some other issues and microsoft will not allow this (like it could affect when you upgrade future service packs). Anyways, this can be useful for someone who has this issue but he or she cannot upgrade to SP3 for now.

 [Resolution]

  1. Open \60\TEMPLATE\1033\SPSSITES\LISTS\SITESLST\NewForm.aspx
  2. Go to line 90
  3. Change the InputFormButtonAtBottom to plain Input tag

 From
<SPSWC:InputFormButtonAtBottom ID="ButtonOk" runat="server" TextLocId="Page_OkButton_Text"/>

 To


 

 

Get Team Site List by User ID or Group

Finding Team Sites user can access is not easy in SharePoint 2003 but my company needs that feature cause users are very demanding... Anyways, it could be solved with querying right into the SharePoint Content Database but it's not good for the SharePoint and database as well.

I don't know how this query affect to SharePoint and the database but I recommend you not to use for applications cause it takes many resources and could cause SharePoint not working properly. I saw an artile about this but I don't have an url for now. Anyways, use these for information check only.

If you have any info on this, please share it to here.

  1. Team Site Url by User ID or Group
    1. Query
      -- 1. Team Sites I can access using ID or Group
      SELECT w.FullUrl
      FROM UserInfo [u] WITH (NOLOCK)
      LEFT JOIN WebMembers [wm] WITH (NOLOCK) ON u.tp_ID = wm.UserID  
      LEFT JOIN Webs [w] WITH (NOLOCK) ON u.tp_SiteID = w.SiteID  
      LEFT JOIN WebGroupMemberShip [wgms] WITH (NOLOCK) 
          ON w.ID = wgms.WebID 
          AND u.tp_id = wgms.MemberID  
      LEFT JOIN WebGroups [wg] WITH (NOLOCK) 
          ON wgms.WebID = wg.WebID 
          AND wgms.GroupID = wg.ID  
      WHERE --wgms.MemberID IS NOT NULL AND 
          w.WebTemplate <> 21              -- except for personal sites
          AND w.FullUrl LIKE 'sites/%' 
          AND ( tp_Login = 'SPNOTE\nicole' OR tp_Login IN ('SPNOTE\bankershall2', 'SPNOTE\Domain Users') )
      GROUP BY w.FullUrl
      
    2. Query results
      image
  2. User Permission by User ID or Group
    1. Query
      --  Get permission info using ID or Group
      SELECT w.Title [Web Title], w.FullUrl, u.tp_Login, wg.Title [WebGroup Title]
      FROM UserInfo [u] WITH (NOLOCK)
      LEFT JOIN WebMembers [wm] WITH (NOLOCK) ON u.tp_ID = wm.UserID  
      LEFT JOIN Webs [w] WITH (NOLOCK) ON u.tp_SiteID = w.SiteID  
      LEFT JOIN WebGroupMemberShip [wgms] WITH (NOLOCK) 
          ON w.ID = wgms.WebID 
          AND u.tp_id = wgms.MemberID  
      LEFT JOIN WebGroups [wg] WITH (NOLOCK) 
          ON wgms.WebID = wg.WebID 
          AND wgms.GroupID = wg.ID  
      WHERE --wgms.MemberID IS NOT NULL AND 
          w.WebTemplate <> 21              -- except for personal sites
          AND w.FullUrl = 'sites/teamsite2'
          AND ( tp_Login = 'SPNOTE\nicole' OR tp_Login IN ('SPNOTE\bankershall2', 'SPNOTE\Domain Users') )
      GROUP BY w.FullUrl,u.tp_Login,wg.Title, w.Title
      
    2. Query results
      image
    3. user.aspx
      image
  3. All Team Site Users by Team Site Url
    1. Query
    2. -- Get All Team Site Users by Team Site Url
      SELECT 
      	tp_Login [Login]
      	, tp_Title [Title]
      	, tp_Email [Email]
      	, CASE
      		WHEN LEN(wg.Title) > 0 THEN wg.Title
      		ELSE ''
      	END [Group Title]
      	, tp_DomainGroup [Domain Group]
      	, CASE
      		WHEN wgms.MemberID IS NULL THEN 'Group'
      		ELSE 'Direct'
      	END [Direct or From group]
      FROM UserInfo [u] WITH (NOLOCK)
      LEFT JOIN Webs [w] WITH (NOLOCK) 
      	ON u.tp_SiteID = w.SiteID
      LEFT JOIN WebGroupMemberShip [wgms] WITH (NOLOCK) 
      	ON w.ID = wgms.WebID
      	AND u.tp_id = wgms.MemberID
      LEFT JOIN WebGroups [wg] WITH (NOLOCK) 
          ON wgms.WebID = wg.WebID 
          AND wgms.GroupID = wg.ID
      WHERE w.FullUrl = 'sites/teamsite2'
          AND wg.WebID IS NOT NULL
      ORDER BY wgms.MemberID DESC
      

    3. Query results
      image
    4. user.aspx
      same as above one

Get Team Site List by User ID or Group

Finding Team Sites user can access is not easy in SharePoint 2003 but my company needs that feature cause users are very demanding... Anyways, it could be solved with querying right into the SharePoint Content Database but it's not good for the SharePoint and database as well.

I don't know how this query affect to SharePoint and the database but I recommend you not to use for applications cause it takes many resources and could cause SharePoint not working properly. I saw an artile about this but I don't have an url for now. Anyways, use these for information check only.

If you have any info on this, please share it to here.

  1. Team Site Url by User ID or Group
    1. Query
      -- 1. Team Sites I can access using ID or Group
      SELECT w.FullUrl
      FROM UserInfo [u] WITH (NOLOCK)
      LEFT JOIN WebMembers [wm] WITH (NOLOCK) ON u.tp_ID = wm.UserID  
      LEFT JOIN Webs [w] WITH (NOLOCK) ON u.tp_SiteID = w.SiteID  
      LEFT JOIN WebGroupMemberShip [wgms] WITH (NOLOCK) 
          ON w.ID = wgms.WebID 
          AND u.tp_id = wgms.MemberID  
      LEFT JOIN WebGroups [wg] WITH (NOLOCK) 
          ON wgms.WebID = wg.WebID 
          AND wgms.GroupID = wg.ID  
      WHERE --wgms.MemberID IS NOT NULL AND 
          w.WebTemplate <> 21              -- except for personal sites
          AND w.FullUrl LIKE 'sites/%' 
          AND ( tp_Login = 'SPNOTE\nicole' OR tp_Login IN ('SPNOTE\bankershall2', 'SPNOTE\Domain Users') )
      GROUP BY w.FullUrl
      
    2. Query results
      image
  2. User Permission by User ID or Group
    1. Query
      --  Get permission info using ID or Group
      SELECT w.Title [Web Title], w.FullUrl, u.tp_Login, wg.Title [WebGroup Title]
      FROM UserInfo [u] WITH (NOLOCK)
      LEFT JOIN WebMembers [wm] WITH (NOLOCK) ON u.tp_ID = wm.UserID  
      LEFT JOIN Webs [w] WITH (NOLOCK) ON u.tp_SiteID = w.SiteID  
      LEFT JOIN WebGroupMemberShip [wgms] WITH (NOLOCK) 
          ON w.ID = wgms.WebID 
          AND u.tp_id = wgms.MemberID  
      LEFT JOIN WebGroups [wg] WITH (NOLOCK) 
          ON wgms.WebID = wg.WebID 
          AND wgms.GroupID = wg.ID  
      WHERE --wgms.MemberID IS NOT NULL AND 
          w.WebTemplate <> 21              -- except for personal sites
          AND w.FullUrl = 'sites/teamsite2'
          AND ( tp_Login = 'SPNOTE\nicole' OR tp_Login IN ('SPNOTE\bankershall2', 'SPNOTE\Domain Users') )
      GROUP BY w.FullUrl,u.tp_Login,wg.Title, w.Title
      
    2. Query results
      image
    3. user.aspx
      image
  3. All Team Site Users by Team Site Url
    1. Query
    2. -- Get All Team Site Users by Team Site Url
      SELECT 
      	tp_Login [Login]
      	, tp_Title [Title]
      	, tp_Email [Email]
      	, CASE
      		WHEN LEN(wg.Title) > 0 THEN wg.Title
      		ELSE ''
      	END [Group Title]
      	, tp_DomainGroup [Domain Group]
      	, CASE
      		WHEN wgms.MemberID IS NULL THEN 'Group'
      		ELSE 'Direct'
      	END [Direct or From group]
      FROM UserInfo [u] WITH (NOLOCK)
      LEFT JOIN Webs [w] WITH (NOLOCK) 
      	ON u.tp_SiteID = w.SiteID
      LEFT JOIN WebGroupMemberShip [wgms] WITH (NOLOCK) 
      	ON w.ID = wgms.WebID
      	AND u.tp_id = wgms.MemberID
      LEFT JOIN WebGroups [wg] WITH (NOLOCK) 
          ON wgms.WebID = wg.WebID 
          AND wgms.GroupID = wg.ID
      WHERE w.FullUrl = 'sites/teamsite2'
          AND wg.WebID IS NOT NULL
      ORDER BY wgms.MemberID DESC
      

    3. Query results
      image
    4. user.aspx
      same as above one