2010-08-18 1 views
0

RIA 서비스에 말할 수 내가 디버거에서이 일을 실행하면 포트 16048. 한편에 그것을 시작했다 ServiceReferences.ClientConfig는 포트 15459를 사용하여 끝점 주소를 가졌습니다. 왜 그렇게했는지는 모르지만 포트 16048에서 서비스에 액세스하도록 변경 한 후에는 문제가되지 않습니다. 나는 포트가 다르다는 것을 알았지 만, 정당한 이유로 서비스를 위해 다른 포트를 사용하고 있다고 가정했다. 이라고 가정 할 때 우리가 누구인지 알고 있습니다.실버 내가 여기 튜토리얼을 따라 한

결론 : 솔루션 탐색기에서 서비스 프로젝트를 마우스 오른쪽 단추로 클릭하고 속성 | 웹 | 특정 포트 튜토리얼에서


, 당신은 간단한 실버 라이트 XAP 일을 만들고 동일한 솔루션의 RIA 서비스를 만들고, 실버 라이트에서 서비스를 호출합니다. VS2010에서 내장 된 웹 서버로 실행했습니다. 서비스에 대한 비동기 호출이 완료되면 결과의 _error가 System.ServiceModel.CommunicationException로 설정됩니다 (아래 참조).

서비스와 Silverlight 응용 프로그램이 같은 컴퓨터에 있고, 동일한 실제 컴퓨터가 내 책상에 앉아 있다는 사실을 과장 할 수는 없습니다. crossdomain.xml 및 clientaccesspolicy.xml을 추가했습니다.

이 자습서는 2008 년 출간되었으며 일부면에서는 쓸모없는 것으로 보입니다. RIA는 편리하지만 Silverlight는 단순히 지원하지 않습니다. MS가 WCF 및/또는 RIA를 이미 다른 용도로 포기 했습니까? 서버에서 Silverlight로 데이터를 가져 오는 새로운 방법이 있습니까? 도메인 서비스 란 무엇입니까? 그게 더 좋은가요? 그것은 마지막 큰 것입니까, 다음 것입니까? 아무도 어떻게 추적합니까?

e._error {System.ServiceModel.CommunicationException : URI 'http://localhost:15459/Service1.svc'에 요청을하는 동안 오류 가 발생했습니다. 이는 올바른 도메인 간 정책이 없으면 도메인 간 방식으로 서비스에 액세스하려고 시도하거나 SOAP 서비스에 적합하지 않은 정책으로 인해 을 시도한 것일 수 있습니다. 을 크로스 도메인 정책 파일을 게시하고 SOAP 관련 HTTP 헤더를 보낼 수 있도록하려면 서비스 소유자에게 문의해야 할 수 있습니다. 이 오류는 InternalsVisibleToAttribute 특성을 사용하지 않고 웹 서비스 프록시에서 내부 형식을 사용하는 경우에도 발생할 수 있습니다. 자세한 내용은 내부 예외 을 참조하십시오. ---> System.Security.SecurityException ---> System.Security.SecurityException : 보안 오류입니다. 에 System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse (IAsyncResult asyncResult)를 입력합니다. System.Net.Browser.BrowserHttpWebRequest. <> c__DisplayClass5.b__4 (Object sendState)를 에 두십시오. System.Net.Browser.AsyncHelper. System.Net.Browser.BrowserHttpWebRequest에서 <> c__DisplayClass2.b__0 (객체 sendState) --- System.Net.Browser.AsyncHelper.BeginOnUI에서 내부 예외 스택 추적 끝 --- (SendOrPostCallback beginMethod는, 객체 상태) System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelAsyncRequest.CompleteGetResponse에서 .EndGetResponse (IAsyncResult를 asyncResult) (IAsyncResult를 결과) --- 내부 예외 스택 추적의 끝 --- 시스템에서.ServiceModel.AsyncResult.End [TAsyncResult] System.ServiceModel.Channels.ServiceChannel.EndCall (문자열 동작에서 (IAsyncResult를 결과) System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.End에서 (SendAsyncResult 결과) 개체 [] 사, 된 IAsyncResult의 결과) 1.ChannelBase 1.EndInvoke (문자열 methodName로를 System.ServiceModel.ClientBase, SilverlightApplication1.ServiceReference1에서 SilverlightApplication1.ServiceReference1.Service1Client.Service1ClientChannel.EndGetITEM_THINGs (IAsyncResult를 결과)에서 [] args를 IAsyncResult를 결과) 개체 .Service1Client.SilverlightApplication1.ServiceReference1.IService1.EndGetITEM_THINGs (IAsyncResult System.ServiceModel.ClientBase`1.OnAsyncCallCompleted (IAsyncResult를 결과)} System.Exception System.ServiceModel.CommunicationException {}에서 SilverlightApplication1.ServiceReference1.Service1Client.OnEndGetITEM_THINGs (IAsyncResult를 결과)의 결과 1,363,210)

답변

1

오류 메시지에서 clientaccesspolicy.xml 파일이 올바른 위치 (서비스의 루트 디렉토리에 있어야 함)에 있지 않거나 서비스에 대한 액세스를 허용하도록 구성되지 않았다고 추측 할 수 있습니다. Silverlight로 서비스에 액세스하는 방법에 대한 자세한 내용은 HTTP Communication and Security with Silverlight을 확인하십시오.

Microsoft는 WCF 및/또는 RIA를 포기하지 않았습니다.

+0

실제로, 나는 clientaccesspolicy.xml을 완전히 제거 할 수 있다고 판명되었습니다. 문제는 그 물건과 전혀 관련이 없습니다. –