2012-04-26 3 views
0

Silverlight에서 Rally의 SOAP 서비스에 액세스 할 수 있습니까? 데스크톱 응용 프로그램에서는 .NET 2.0 프록시에서 서비스에 액세스 할 수 있지만 Silverlight에서는 WCF 클라이언트 프록시를 통해 액세스 할 수 없습니다. 나는 다음과 같은 친숙한 예외가,Silverlight에서 Rally SOAP 서비스에 액세스

System.ServiceModel.CommunicationException : 가 URI에 대한 요청을하는 동안 오류가 발생했습니다 는 .... 이는 십자가에서 서비스에 액세스 할 수 을 시도하기 수 -domain 방식으로 적절한 도메인 간 정책이 없거나 SOAP 서비스에 적합하지 않은 정책을 사용합니다. 을 크로스 도메인 정책 파일을 게시하고 SOAP 관련 HTTP 헤더를 보낼 수 있도록하려면 서비스 소유자에게 문의해야 할 수 있습니다. 이 오류는 InternalsVisibleToAttribute 특성을 사용하지 않고 웹 서비스 프록시에서 내부 형식을 사용하는 경우에도 발생할 수 있습니다. 자세한 내용은 내부 예외 을 참조하십시오.

저는이 문제가 서버에 설치된 크로스 도메인 정책 파일을 필요로하는 Silverlight에서 크로스 도메인 요청을 시도하여 발생했다고 생각합니다. 이 경우 데스크톱 응용 프로그램에 이러한 정책이 필요하지 않은 이유는 무엇입니까?

답변

0

저는 Silverlight 전문가는 아니지만 Silverlight 클라이언트가 서버/호스트 이외의 사이트에 요청하지 않았는지 확인하기 위해 Silverlight에서 부과 한 크로스 도메인 스크립팅/보안 샌드 박스처럼 보입니다. Silverlight 클라이언트가 서비스 공급자/devloper에 의해 특별히 권한을 부여받지 않은 한 다운로드됩니다. 위의 오류 메시지 :

"도메인 간 정책 파일을 게시하고 SOAP 관련 HTTP 헤더를 보낼 수 있도록하려면 서비스 소유자에게 문의해야 할 수 있습니다."

"서비스 소유자"는 "외부"웹 서비스 (이 경우 집회)보다는 Silverlight 호스트의 소유자를 의미한다고 생각합니다.

데스크톱 및/또는 콘솔 앱에는 동일한 샌드 박스 제한이 없습니다. Silverlight 클라이언트를 통해 다른 공급 업체의 웹 서비스에 액세스하려고해도 동일한 문제가 발생할 수 있습니다. 에서 설정 방법의 세부 사항에 대한 도움

Cross Domain Policy

및 서버에 실버 크로스 도메인 정책 파일을 구성

이 실버 고유의 스레드를 찾을 수 있습니다.

0

Silverlight는 보안을 염두에두고 만들어졌습니다. 즉, Silverlight 응용 프로그램의 크로스 사이트 스크립팅은 기본적으로 해제되어 있으며 상황별로 사용하도록 설정해야합니다. 반면에 .NET 데스크탑 응용 프로그램은 일반적으로 훨씬 더 강력한 보안 권한을 가지며 원하는 웹 서비스, COM 객체 및 기본 API를 호출 할 수 있습니다.

Silverlight에서이 문제를 해결하는 방법은 서버에 서비스를 만드는 것입니다. Silverlight 클라이언트 코드는 서드 파티 웹 서비스를 호출하는 서버 측 서비스를 호출합니다. 서버 측 서비스는 .NET, java 등 무엇이든을 베팅 할 수 있습니다. 웹 서버는 일반적으로 문제가 해결 된 것을 호출 할 수 있습니다.

+0

응답 해 주셔서 감사합니다. 이 접근 방식을 고려했지만 Silverlight 5의 높은 신뢰를 사용하여 해결했습니다. –

+0

네,이를 해결할 수있는 다른 방법은 앱에서 많은 권한을 사용하는 것입니다. :) 브라우저 내부에서 실행할 필요가없는 경우 브라우저 앱에서 높은 신뢰를 얻는 것이 더 쉬울 수도 있습니다. 차이점은 모든 브라우저가 작동하도록 앱에 서명해야하는 것과 같이 브라우저 내 승격 된 신뢰 항목이 보이는 것입니다. 귀하의 상황과 조직에 따라 귀하의 선택에 달려 있습니다. –

0

Silverlight 5에서 제공하는 확장 권한 기능을 사용하여이 문제를 직접 해결했습니다. xap이 내부 인터넷에 배포되었으므로이 솔루션을 사용할 수있었습니다.

관련 문제