2013-04-24 5 views
1

GET/POST 요청을 통해 서버와 인터페이스해야하는 Silverlight 응용 프로그램을 작성하고 있습니다. 내 코드는 다음과 같습니다.WebClient GET 요청으로 System.Security.SecurityException

Uri serviceUri = new Uri(my_URI); 
WebClient client = new WebClient(); 

client.OpenReadCompleted += new OpenReadCompletedEventHandler(OnRequestComplete); 
client.OpenReadAsync(serviceUri); 

그러나 콜백 함수가 호출되면 System.Security.SecurityException이 발생합니다. 비슷한 오류를 가진 사람들로부터 여러 질문을 읽었지만 디버깅하는 동안 모든 문제는 도메인 간 문제에서 비롯된 것으로 보입니다. 코드를 실행하면 http://localhost:...을 도메인으로 사용하므로 문제가되지 않아야합니다. 도움이 될 경우 전체 오류가 있습니다.

{System.Security.SecurityException: Security error. 
    at System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult) 
    at System.Net.Browser.BrowserHttpWebRequest.<>c__DisplayClassa.<EndGetResponse>b__9(Object sendState) 
    at System.Net.Browser.AsyncHelper.<>c__DisplayClass4.<BeginOnUI>b__0(Object sendState)} 

감사합니다. 이것은 매우 초조 한 문제였습니다.

UPDATE :

나는 그것으로 많은 주위에 나사 결국 일을 할 수있는 모든 조건을 가지고

. 100 %가 아니었지만 ... 나는 상상할 수있는 모든 곳에서 clientaccesspolicy.xml 및 crossdomain.xml 파일을 복사/붙여 넣기를 끝내고 새 Silverlight 프로젝트를 만들고 그 밖의 다른 것들도 복사했습니다. 다른 사람이이 문제를 겪는다면, 그 정도의 충고를 해 줄 것입니다 :/

+0

가능한 복제 http://stackoverflow.com/questions/766574/using-web-client-in-silverlight – aquaraga

+0

그는 file : // URI에서 실행 중입니다. 위에서 언급 한 것처럼 localhost에서 실행 중입니다 – Duncan

답변

1

포트 번호가 일치하지 않기 때문에 여전히 동일한 출처 정책을 위반한다고 생각합니다. 즉, XAP uri의 포트와 my_URI 포트가 일치하지 않습니다. 그리고 따라서 System.Security.SecurityException. my_URI를 XAP에 상대적으로 호스팅 할 수 있습니까?

더 나아가 WCF를 사용하여 서버와 상호 작용 해 볼 수 있습니까?

+0

흥미 롭습니다. 나는 요청을 보내고받는 것을 시험하기 위해 빠른 C# 응용 프로그램을 작성했으며 그것이 작동하는 것처럼 보였다. 이 문제가 여전히 동일한 출처 문제라고 가정하면 어떻게 해결할 수 있습니까? 나는 이미 clientaccesspolicy.xml과 crossdomain.xml을 추가하는 것과 같이 온라인에서 찾은 모든 (합당한) 제안을 시도했다. – Duncan

관련 문제