티스토리 뷰

샌드박스 솔루션(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' 형식을 로드할 수 없습니다. 라는 오류가 발생합니다.

 

            팜 솔루션으로 배포했을 때는 아무런 문제 없이 진행되는 코드입니다.

 


샌드박스 솔루션은 코딩과 빌드, 패키지에서는 차이가 없으며 실행시 리소스에 제한적이며 안전하게 동작된다는 것을 아실 수 있습니다.


댓글