2014-02-28 9 views
0

저는 Silverlight를 사용하는 프로젝트에 있는데 SL로는 몇 가지 사항에 대해서는 분명치 않습니다.silveright 코드에서 웹 서비스 호출을하면 내부적으로 어떻게됩니까?

나는 SL이 클라이언트 브라우저에 xap을 다운로드하고 많은 일을 그렇게 쉽게한다는 것을 이해한다. aspx 또는 html 페이지는 SL 플러그인을로드하고 브라우저에서 xap을 다운로드합니다. 웹 응용 프로그램을 IIS에 배포하고 IIS (http)에서 호스팅되는 WCF 웹 서비스가 거의없고 Windows 서비스 (net.tcp)로 몇 개가 있습니다.

Silverlight 코드에서 작성한 wcf 서비스 호출은 어떻게됩니까? Silverlight 코드에서 직접 WCF http 또는 net.tcp 기반 서비스를 호출 할 수 있기 때문에 SL 클라이언트가 브라우저 (또는)에서 웹 서비스에 직접 말할 수 있는지 궁금합니다. SL 호출은 웹 사이트로 연결되어 서비스 호출을합니다. ?

여기 몇 가지 기본 사항을 이해하기 위해 누락 된 것으로 생각됩니다. 누군가 SL에서이 시나리오에서 일어나는 일을 설명 할 수 있습니까? 좀 더 깊이 이해할 수있는 링크를 제공해 주시면 감사하겠습니다.

감사합니다.

+2

Fiddler를 실행하고 교통 정보를 보도록 제안하십시오. 매우 교육적입니다. 보통 WCF Direct가 아닌 Silverlight로 * WCF RIA 서비스 *를 사용하는 것이 가장 쉽습니다. 서비스 호출은 브라우저/Silverlight에서 직접 처리됩니다 (실제로는 어떤 서비스인지는 신경 쓰지 않습니다). 웹 사이트는 순전히 서비스와 Silverlight 웹 페이지를 호스팅합니다. –

+1

PS. XAP 파일은 이름이 바뀐 ZIP 파일입니다. 이름을 변경하고 압축을 풀고 브라우저에 무엇이 다운로드되는지 확인하십시오. –

+0

@ 트루 - 고마워. 나는 바이올린을 시도 할 것이다. 저는 웹 서비스 호출에 대한 IIS 작업자 프로세스 참여의 관점에서 더 많은 것을 이해하려고합니다. 웹 서비스가 IIS에서 호스팅되는 경우 웹 서비스에 대한 SL 호출이 IIS 작업자 프로세스를 통과 할 것이라고 가정합니다. 그리고 서비스가 독립 실행 형으로 호스팅 될 때, 예를 들어 윈도우 서비스에서 SL은 IIS에서 어떤 것도 사용하지 않을 것입니까? 이것은 내가 약간 혼란스러워하는 곳입니다. –

답변

1

tcp가 기본 프로토콜 일 때 Silverlight는 로컬 또는 외부 네트워크의 모든 것과 직접 통신 할 수 있습니다. 보안 제한을 적용하십시오.

예를 들어 tcp를 기반으로하는 로컬 WCF 서비스와 통신하는 경우에도 clientaccesspolicy.xml을 http로 저장 호스트에 제공하거나 높은 권한으로 Silverlight를 실행해야합니다.

http의 경우 Silverlight는 브라우저에 요청하거나 직접 요청할 수 있습니다 (어느 것이 wcf에 사용되는지 모르겠습니다). tcp는 항상 플러그인에서 직접 수행됩니다.

Silverlight 응용 프로그램은 웹 사이트에서 호스팅되어야하지만 Silverlight가 작동하거나 WCF 서비스에 액세스하기 위해 웹 사이트에서 수행해야 할 작업이 없습니다. 순전히 정적 파일로 Silverlight 응용 프로그램을 호스팅 할 수 있습니다.

+0

감사합니다. 나는 받아들이는 유혹에 빠진다. 그래서 만약 내가 tcp 서비스를 호스트한다면, 나는 SL 어플리케이션이 TCP 서비스와 통신하도록 4503-4535 포트를 열 필요가 있다는 것을 의미한다. 외부 웹 애플리케이션에 이상적이지 않다고 생각합니다. –

+1

@Mani 홈 라우터가 일반적으로 그런 경우를 다루기 때문에 클라이언트 (예 : Silverlight)가 연결을 시작하는 것이 아닙니다. 포트 80이 신뢰할 수있는 유일한 경우가 종종있는 기업 환경에서이 문제가 발생할 것으로 예상해야합니다. (이것은 Silverlight에만 국한된 것은 아닙니다.) 만약 당신이 서비스의 저자이고 양방향 통신을 원한다면 (내가 알고있는 유일한 경우는 HTTP를 통해 원시 TCP를 선택하도록 동기가 될 것입니다. 두 종점의 저자)라면, wcf가 아닌 새로운 개발 인 signalr을 고려할 수 있습니다. – John