데이터 시트 편집이라는 기능은 MOSS내 List 스타일의 데이터를 직접 웹상에서 수정할
때 사용되는 기능이다. ( 아래그림 참조 )



그런데, 현재까지 확인해 본 결과, MS Office 2007의 MS Access 2007이 설치되어야 정상적으로 동작했다. 만일 MS Access 2007이 없거나 2007 미만의 버전이 설치된 경우 아래와 같은 오류를 발생하게 된다.


게다가 위의 페이지에서 뒤로(Back) 가기 버튼을 클릭하면 IE가 터지기 까지 한다.

이 문제는 결국 MS Office 2007을 설치해야 정상적으로 사용할 수 있다.

728x90
주의 : 이 작업은 SQL Express 버전인 경우에는 실패할 수 있습니다. ( SharePoint 독립실행형으로 설치된 경우 SQL Express로 설치됨 )

SQL 2005를 기본 값으로 설치하게 되면
C:\Program Files\ 밑의 MSSQL 폴더 아래에 Data 파일까지 저장되게 된다.
이 경우 문제가 파일 사이즈가 커지게 되고, 디스크의 성능이 점점 떨어지면서,
운영체제 전체가 느려지게 되게 된다. ( 보통 운영체제가 C:\ 에 설치되므로 )

그래서 일반적으로 별도의 위치에 설치하게 되는데, 운이 나쁘게
SharePoint를 이미 설치한 경우에는 사실 DB 파일 바꾸는 것은 SharePoint를 다시 설치하는 것과 같다.
이 경우 다른 위치에 DB 파일을 옮겨야 되는데, 해결하는 방법은 아래와 같다.

1. 모든 SharePoint 서비스를 Stop 시킨다.
  Office SharePoint Server Search
  Windows SharePoint Services Administration
  Windows SharePoint Services Search
  Windows SharePoint Services Timer
  Windows SharePoint Services Tracing

2. SQL Management Studio를 실행하여, 원하는 DB를 분리(detach) 한다.

3. 해당 DB 파일(MDF, LDF)들을 복사하여 원하는 위치에 복사/이동한다.

4. SQL Management Studio를 실행하여, 해당 DB 파일을 연결(Attach) 한다.

5. 앞서 Stop 시킨 모든 서비스를 Start 해준다.

SharePoint의 모든 데이터들이 DB에 담기기 때문에, 단순 SQL 설정만으로 해결되게 된다.


728x90

SPList 개체에서 특정 사용자의 특정 권한을 체크하고 싶을 때 사용하는 방법이다.
일전 SK 에너지(구 SK Corp)에서 게시판에서 처리한 방법을 보면
아래와 같이 처리되어 있었다.

// 1번 그룹이 바로 글 쓰기 권한
SPList list = SPContext.Current.Web.GetList(".....");
newItemGroup = 1;
usableNewItem = false;
SPGroup group = SPContext.Current.Web.Groups[newItemGroup];
if( group.ContainsCurrentUser == true )
{
      // SPList에 글쓰기가 있으니.. 쓰는 권한에 관련된 처리를 여기에..
      SPListItem newItem = list.items.Add();
       ......
}


위의 방법대로 하기 위해서는 newItemGroup의 그룹을 찾아야 되는 문제가 있다.
이에 간단하게 해결하는 방법이 있는데 아래와 같다.

SPList list = SPContext.Current.Web.GetList(".....");
if(list.DoesUserHavePermissions(SPBasePermissions.AddListItems))
{
     // SPList에 글쓰기가 있으니.. 쓰는 권한에 관련된 처리를 여기에..
      SPListItem newItem = list.items.Add();
       ......
}

DoesUserHavePermissions 이 메소드 안에, SPBasePermissions 항목에
체크하고자 하는 권한들을 넣으면 된다.
만일 여러개의 권한 체크가 필요할 시에는 '&'로 연결해서 체크하면 된다.

if(list.DoesUserHavePermissions(SPBasePermissions.AddListItems | SPBasePermissions.EditListItems))
{
    // SPList에 글쓰기가 있으니.. 쓰는 권한에 관련된 처리를 여기에..
      SPListItem newItem = list.items.Add();
       ......
}



수정 : if(list.DoesUserHavePermissions(SPBasePermissions.AddListItems & SPBasePermissions.EditListItems)) 라고 썼던 부분을
if(list.DoesUserHavePermissions(SPBasePermissions.AddListItems | SPBasePermissions.EditListItems)) 로 수정합니다.
& -> |


 

728x90

지금 작업 중에, MOSS 2007 안에 있는 콘텐츠 데이터베이스를 각 사이트 콜렉션별로
나누어 만드는 작업이, 콘텐츠 데이터베이스 갯수 : 사이트 콜렉션 갯수를 1:1로 맞추어 진행하고 있다.

그런데, 재미있는 것은 만든 사이트 콜렉션 내에 사이트를 무한대 만들어도
콘텐츠 데이터 베이스에서는 무조건 현재 사이트 수를 1로 잡고 있었다.

이는 즉, 이 콘텐츠 데이터베이스 입장에서는 하위 사이트 수는 전혀 관계 없고
오로지 사이트 콜렉션이 몇개인지에 달려있다고 볼 수 있다.
만일 사이트 콜렉션 수가 콘텐츠 데이터베이스에 1개만 달렸다면,
콘텐츠 데이터베이스는 죽었다 깨어나도 사이트 콜렉션을 1개만 달고,
그 하위의 사이트는 무한대로 달 수 있게 된다.

728x90
MOSS 2007을 설치하면 기본적으로 설치되는 프로필의 목록이다.
이 목록을 이용하면, 원하는 이름 별로 찾을 수 있다.

한글 이름 Static Name
계정 이름 AccountName
이름 FirstName
LastName
전체 이름 PreferredName
회사 전화 WorkPhone
사무실 Office
부서 Department
직함 Title
관리자 Manager
설명 AboutMe
개인 사이트 PersonalSpace
그림 PictureURL
사용자 이름 UserName
빠른 연결 QuickLinks
웹 사이트 WebSite
공용 사이트 리디렉션 PublicSiteRedirect
보조 관리자 SPS-Dotted-line
피어 SPS-Peers
업무 SPS-Responsibility
기술 SPS-Skills
이전 프로젝트 SPS-PastProjects
취미 SPS-Interests
학교 SPS-School
주소 SPS-SipAddress
생일 SPS-Birthday
내 사이트 업그레이드 SPS-MySiteUpgrade
목록 제안 안 함 SPS-DontSuggestList
프록시 주소 SPS-ProxyAddresses
고용 날짜 SPS-HireDate
마지막으로 동료를 추가한 날짜 SPS-LastColleagueAdded
Outlook Web Access URL SPS-OWAUrl
리소스 포리스트 SID SPS-ResourceSID
리소스 포리스트 계정 이름 SPS-ResourceAccountName
마스터 계정 이름 SPS-MasterAccountName
비서 Assistant
회사 전자 메일 WorkEmail
휴대폰 CellPhone
팩스 Fax
집 전화 HomePhone

728x90

금일 작업 중에, 일정 되풀이된 일정들을 SPQuery를 이용하여 SPListItemCollection을 가져오는 방법에 대해서

분석했습니다.

 

문제원인

만일 오늘 날짜에 해당하는 일정(되풀이 포함) 사항을 가져오려면 아래와 같이 작성하게 됩니다.

 

SPQuery query = new SPQuery();

// 쿼리문생성

query.Query = "<Where>"

               + "<DateRangesOverlap>"

               + "<FieldRef Name=\"EventDate\" />"

               + "<FieldRef Name=\"EndDate\" />"

               + "<FieldRef Name=\"RecurrenceID\" />"

               + "<Value Type=\"DateTime\">"

               + "<Today />"

               + "</Value>"

               + "</DateRangesOverlap>"

               + "</Where>";

SPListItemCollection listItems = list.GetItems(query);

 

위의 코드대로 작성하게 되면, listItems( SPListItemCollection )의 목록은

오늘 날짜에 해당하는 일정을 가져오는 동시에, 오늘 날짜의 이전 되풀이 일정(한주 기준)들도 함께 나오게 됩니다.

만일 오늘이 목요일이라고 하는 경우, 그 주의 월, , , 에 있는 되풀이들도 모두 나오게 됩니다.

(되풀이가 아닌 경우에는 정상적으로 나옵니다.)

 

즉 되풀이에 대한 별도 필터링 작업이 필요해지게 됩니다.

 

해결 방법

GetItems를 실행하기 전에, 아래와 같이 설정하면 됩니다.

(CalendarDate 부분은 읽어오려는 기준 날짜를 넣어주시면 됩니다.)

 

query.CalendarDate = new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day);

query.RecurrenceOrderBy = true;

query.ExpandRecurrence = true;

 

위와 같이 넣고, GetItems를 하시면 정확히 원하는 되풀이만 가져올 수 있습니다.

728x90

원본 사이트 : http://weblogs.asp.net/erobillard/archive/2007/07/06/how-to-change-service-accounts-and-their-passwords-in-moss-and-wss-3-0.aspx


WSS 또는 MOSS용 웹 응용 프로그램의 응용 프로그램 풀 아이디 변경하는 방법

  1. SharePoint 중앙관리를 열어 "작업"을 클릭합니다.
  2. 보안 구성 항목 밑에 있는 서비스 계정을 클릭합니다.
  3. 웹 응용 프로그램 풀을 가르키는 라디오 버튼을 클릭한 뒤, 웹 서비스 중에 Windows SharePoint Services 웹 응용 프로그램을 선택한다음 응용 프로그램 풀에서 변경하고자 하는 웹 응용 프로그램 풀을 선택합니다.
  4. 아래에 있는 "이 구성 요소에 대한 계정을 선택하십시오" 밑 쪽에 위치한 계정을 설정해주시기 바랍니다. 기본적인 형태로 설정하는 경우에는 "미리 정의됨" 라디오 버튼을 선택한 뒤, 네트워크 서비스와 로컬 서비스중 하나로 선택하시고, 직접 입력하시려면 "보안 계정 구성" 라디오 버튼을 선택한 뒤, 사용자 이름과 암호를 입력합니다.
  5. 확인을 클릭해서 적용 한 뒤, IISRESET /NOFORCE를 실행하시기 바랍니다.

SharePoint 중앙 관리(SCA)의 웹 응용 프로그램의 응용 프로그램 풀 아이디 변경하는 방법

  1. stsadm -o updatefarmcredentials -userlogin domain\username -password password 를 입력합니다.
  2.  잠시 기다립니다.
  3. IISRESET /NOFORCE를 실행하시기 바랍니다.


MOSS 검색을 위한 기본 컨텐츠 액세스 계정 변경하는 방법.

  1. 중앙관리 페이지를 연 뒤, 왼편에 위치한, 공유 서비스 관리를 클릭해서 공유 서비스 관리에 들어간다.
  2. "검색"항목에 있는 검색 설정을 클릭한 뒤, "기본 컨텐츠 액세스 계정"을 선택합니다.
  3. 원하는 계정으로 변경한 뒤, 확인을 클릭합니다

MOSS 검색 서비스 계정 변경하는 방법

  1. SharePoint 중앙관리를 연 뒤, "작업"을 클릭합니다.
  2.  "서버 제공 서비스"를 클릭해서 들어간 뒤, "Office SharePoint Server 검색"에 들어갑니다.
  3. 아이디와 암호를 입력한 뒤 확인을 클릭합니다.



 

728x90
Shared Service Provider(이하 SSP)는 공유 서비스 공급자라는 이름으로 번역되어 등록되어 있다. MOSS 2007 전체 아키텍처 상, 이 SSP의 역할을 각기 흩어진 각종 웹 응용 프로그램의 내용 중에 공유해야 할 정보들을 묶고 있는 일종의 레파지토리(저장 장소)의 역할을 수행하는 것이 그 특징이다.

대략적으로 SSP가 담고있는 정보는 다음과 같다.
  • 사용자 프로필
  • My Site 설정값.
  • 검색 설정 및 검색 인덱스
  • MOSS 전체 기능 로그
  • 대상 그룹 설정
  • 엑셀 서비스 관리
  • BDC(Business Data Catalog) 관리
    .
이 기능은 WSS에는 없고, 오로지 MOSS 내에서만 존재하는 기능이다.
전체적인 기능들이 대부분 Enterprise 급의 데이터 관리에 필요한 사항들을 모아둔 것이 특징이다. 그래서 대부분 80 기본 사이트 보다는 별도의 웹 응용 프로그램을 이용해서 별도로 제작하는 것이 일반적이다. ( 같은 웹 응용 프로그램에 들어가면 운영 응용 프로그램과 겹쳐 진행되거나, 보안적으로 취약해질 수 밖에 없기 때문이다. )

그런데, 초기에 만들어진 SSP의 설정 문제로 삭제 후 다시 만들려고 할 때,
문제가 발생하게 된다. 한번 만들어진 SSP 삭제도 잘 되지 않을 뿐더러,
일부만 삭제되어 비정상적으로 실행되기도 한다.
그리고 새로 만든 SSP를 기본값으로 설정해도 예전 사이트는 여전히 비정상적으로
동작하는 경우가 발생한다.

이와 같은 문제가 발생하는 이유는 SSP가 가지고 있는 생성 규칙 때문으로 생각된다.

  • SSP에 영향을 받는 단위는 웹 응용 프로그램이다. ( 사이트 컬렉션, 사이트 단위 아님 )
  • 먼저 최초 SSP를 제작하게 되면, 기본적으로 이후에 생성되는 웹 응용 프로그램들이 모두 이 SSP를 바라보며, 동시에 이전에 생성한 웹 응용 프로그램들도 이 SSP를 바라보도록 구성된다.
  • 새로운 SSP를 추가한 뒤, 기본 값으로 설정하게 되면, 이전 웹 응용 프로그램은 모두 이전 SSP를 그대로 유지되고, 이후에 새롭게 생성한 웹 응용 프로그램 부터 새로운 SSP를 바라본다.
만일 SSP 설정이 잘못되어 처음 부터 다시 구성할 예정이라면, 최소한 이전에 구축한 사이트를 완전히 날리고 다시 설정해야 될 것이다. 또한 SSP의 기본값 변경을 통해 SSP 이전이라는 작업 자체가 되지 않는 사실도 인지할 필요가 있다.


728x90

+ Recent posts

728x90