2014-07-09 2 views
0

Silverlight 응용 프로그램이 있습니다. DefaultAppPool 사용자와 함께 작동합니다. 어떤 서버에 대한 권리가 있습니다. (쓰기/수정/삭제 등)Silverlight 디렉터리 삭제

로컬로 실행하면 Directory.CreateDirectory 및 Directory.DeleteDirectory를 사용하여 디렉토리를 만들고 삭제할 수 있습니다.

그러나 실버 라이트 애플리케이션을 온라인으로 작성하면 글을 쓸 수는 있지만 삭제할 수는 없습니다.

문제가 무엇인지, 왜 삭제되지 않았는지 확인하는 방법이 있습니까? 누구든지 내가 시도 할 수있는 제안이 있습니까?

(나는 또한 다음과 같은 시도 :
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(App.Serverpath); 
dir.Delete(true); 

본인은 해당 ServerPath를 확인, 그것은 올바른 하나입니다!)

+0

디렉토리를 로컬 또는 서버에서 삭제하려고합니까? Silverlight가 완전히 신뢰되지 않으면 로컬 디렉터리를 삭제하면 안됩니다. – McGarnagle

+0

로컬로 실행하면 응용 프로그램이 종료 될 때 삭제되는 로컬 임시 디렉토리가 만들어집니다. 서버에서 실행하면 서버에 임시 디렉토리가 생성되지만이 폴더는 응용 프로그램을 종료 할 때 제거되지 않습니다! – Sliver2009

답변

0

예. 기본적으로 Silverlight는 샌드 박스 런타임 환경입니다. 기본적으로 응용 프로그램이 실행중인 컴퓨터의 파일은 삭제할 수 없습니다. 그러나이를 Elevated Trust 모드로 전환하여이를 허용 할 수 있습니다. 이 작업에는 기본적으로 두 가지 방법이 있습니다. 브라우저 및 브라우저 외부 (OOB). 브라우저가 더 간단하지만 사용자가 응용 프로그램을 설치해야합니다. 어쨌든 코드 서명 인증서를 구입하고 Xap 패키지에 서명해야합니다.

브라우저 응용 프로그램의 경우 클라이언트의 컴퓨터를 브라우저의 상승 된 신뢰를 위해 레지스트리 수준에서 명시 적으로 구성해야합니다. 클라이언트가 응용 프로그램을 OOB 응용 프로그램으로 설치하는 경우 클라이언트는이를 수행 할 필요가 없습니다.

이 높은 신뢰를 설정하는 방법에 대한 많은 기사,하지만 여기에 하나입니다 Enabling In-browser elevated trust

참고 : 나는 단어를 여기에 "서버"의 사용에 의해 혼란 조금 해요. Silverlight는 일반적으로 클라이언트 측 기술입니다. 서버의 파일을 직접 삭제할 수 없습니다. 서버 측에서 파일을 삭제해야하는 경우 서버 측 (예 : WCF 또는 REST)에서 서비스를 빌드하고 클라이언트 측에서 Silverlight의 서비스를 호출해야합니다. 서버에서 파일을 정말로 삭제해야하는 경우 서버에서 Sivlerlight 앱을 실행할 수 있기 때문에 쉽지 않을 수 있습니다.

관련 문제