샌드박스 솔루션(2)
샌드박스 솔루션에 대한 코드 내용을 한번 살펴보도록 하겠습니다.
Visual 웹 파트 프로젝트는 샌드박스 솔루션을 기본적으로 지원하지 않아 일반 웹 파트로 구성을 해보도록 하겠습니다.
빈 프로젝트를 생성하고(샌드박스 솔루션으로 선택하고) 새 항목을 웹 파트로 추가해서 아래와 같은 코드를 작성해봅니다.
샌드박스 솔루션이지만 코드를 작성하고 빌드, 패키지를 해보면 별 문제 없다는 것을 확인 가능합니다. 해당 사이트 모음의 솔루션 갤러리에 wsp패키지 파일을 업로드하고 활성화합니다.
먼저 결과값을 출력할 Label을 아래와 같이 추가합니다.
l Hello World를 출력한 Button 클래스를 추가하고 이벤트에서 Label에 결과 값을 출력합니다.
물론 잘 됩니다. 일반적인 코딩에서는 별 문제 없습니다.
l SPContext 클래스를 테스트하기 위해 아래와 같이 Button 클래스를 추가하고 이벤트에 코드를 작성합니다.
현재 Context 에 대한 정보이므로 별 문제 없이 잘 됩니다.
l RunWithElevatedPrivileges 를 테스트하기 위해 아래와 같은 코드를 작성하고 이벤트에서 RunWithElevatedPrivileges를 사용해봅니다.
빌드하고 패키지 할 때 까지는 문제 없다가 런타임에서 문제가 발생합니다. 제대로 실행되었다면 결과값이 출력되어야 합니다.
l 위의 코드와 비슷하게 다른 사이트 모음을 방문해보도록 하겠습니다. 물론 권한은 있습니다.
마찬가지로 별 문제 없다가 실행할 경우 문제가 발생합니다.
l 이제 네트워킹을 한번 해보도록 하겠습니다. Google로 Request를 해보려고 합니다.
오류정보 표시를 클릭해서 좀 더 내려가 보면 System.Net.WebPermission 에 대한 사용 권한을 요청하지 못했다고 문제가 발생합니다. CAS를 적용해주어야 합니다.
l 데이터베이스 Connection을 Open 해보도록 하겠습니다. 문제없다면 Label에 Open~ 이라는 글자가 출력되어야 합니다.
TypeInitializationException: 'System.Data.SqlClient.SqlConnection'의 형식 이니셜라이저에서 예외를 Throw했습니다 라는 오류가 발생합니다.
l 마지막으로 SPFarm에 대한 내용을 액세스해보겠습니다.
'Microsoft.SharePoint.Administration.SPFarm' 형식을 로드할 수 없습니다. 라는 오류가 발생합니다.
팜 솔루션으로 배포했을 때는 아무런 문제 없이 진행되는 코드입니다.
샌드박스 솔루션은 코딩과 빌드, 패키지에서는 차이가 없으며 실행시 리소스에 제한적이며 안전하게 동작된다는 것을 아실 수 있습니다.
'SharePoint 2010' 카테고리의 다른 글
외부 콘텐츠 형식(2)-SharePoint Designer 2010 (1) (0) | 2011.08.30 |
---|---|
외부 콘텐트 형식(1) – 소개 (0) | 2011.08.23 |
SharePoint 2010 Sandbox 솔루션(1) (0) | 2011.08.02 |
SPQuery 를 통한 페이징 (0) | 2011.07.26 |
SharePoint 2010 Service Pack 1 설치 (0) | 2011.07.18 |