Search

'sandboxed solution'에 해당되는 글 2건

  1. 2011.08.09 SharePoint 2010 샌드박스 솔루션(2)
  2. 2011.08.02 SharePoint 2010 Sandbox 솔루션(1)

SharePoint 2010 샌드박스 솔루션(2)

SharePoint 2010 2011. 8. 9. 08:30 Posted by 알 수 없는 사용자

샌드박스 솔루션(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 Sandbox 솔루션(1)

SharePoint 2010 2011. 8. 2. 08:30 Posted by 알 수 없는 사용자


SharePoint 2010 Sandbox 솔루션(1)

SharePoint 2010 프로젝트를 만들려고 하면 팜 솔루션이나 샌드박스 솔루션을 선택하는 창을 보게 됩니다.

Office 365 SharePoint Online 사이트에서는 팜 솔루션으로는 제한되고 Client OM, Silverlight, 샌드박스 솔루션을 위주로 진행하게 됩니다.

샌드박스 루션이 어떤 것인지 좀 더 구체적으로 알아보도록 하겠습니다.


위 화면의 옵션은 프로젝트를 생성할 때 선택이 가능하며 배포하기 전에도 속성을 변경이 가능합니다.

샌드박스 솔루션의 특징은 다음과 같습니다.

l 해당 사이트 컬렉션의 기능에서만 보입니다. 다른 사이트 컬렉션에서는 보이지 않습니다.

l 사이트 컬렉션 소유자가 wsp파일을 솔루션 갤러리에 업로드 할 수 있습니다. 그리고 활성화합니다.

l 보안에 대해 안전하게 사용할 수 있다. 보안에 제한적이라는 의미입니다.

l 리소스가 제한적으로 기본적으로 300 포인트에서만 동작되게 됩니다. 초과하게 되면 임시적으로 중지됩니다. CPU, 데이터베이스 쿼리 등이 리소스에 해당되며 내부적으로 포인트를 계산합니다. 물론 중앙관리에서 포인트를 수정 가능합니다.

l 개발자가 코딩하는 것은 큰 차이 없습니다. 빌드, 디버그, 배포에도 큰 차이 없습니다. 해당 코딩에 대해서는 문제가 있을 경우 런타임에서 에러가 나타나게 됩니다. 전체 개체 모델의 SubSet으로 보면 됩니다.

l SPFarm, SPService, System.Net.HttpWebRequest.Create, SPSite 에서 다른 사이트를 액세스하려고 할 경우, SPSecurity.RunWithElevatedPrivileges, SQL Connection 등은 문제가 발생하게 됩니다. 해당 사이트 컬렉션에서만 놀아야 한다고 보시면 됩니다.

l 모든 프로젝트 템플릿과 프로젝트 항목이 샌드박스 솔루션을 지원하는 것은 아닙니다. (비쥬얼 웹 파트, 사이트 정의, 비즈니스 데이터 연결 모델, 응용 프로그램 페이지 등)

l 페이지 편집에서 웹파트 추가 등 사용하는 것에는 별 차이 없습니다.

l 샌드박스 솔루션을 이용하기 위해서는 중앙관리에서 “Microsoft SharePoint Foundation 샌드박스를 작동하는 코드 서비스서비스를 시작해주어야 합니다.


l w3wp.exe 프로세스에서 운영되는 것이 아니라 SPUCWorkerProcess.exe에서 운영됩니다.


다음 내용에서 샌드박스 솔루션에서 직접 런타임에서 오류가 발생하는 내용을 알아보도록 하겠습니다.