2013-08-26 7 views
0

필자는 Prism을 사용하여 Silverlight Business Application을 개발했습니다.이 응용 프로그램은 주 응용 프로그램에 액세스하기 전에 사용자가 로그인해야합니다. Silverlight 응용 프로그램은 IIS 7.5 (포트 * : 8086)에서 호스팅되며 IIS 7.5 (포트 * : 8069)의 동일한 인스턴스에서 호스팅되는 WCF 서비스를 호출합니다.Silverlight Prism보기 전환이 URL의 영향을 받습니까?

http://localhost:8086을 통해 Silverlight 응용 프로그램에 액세스하면 예상대로 작동합니다 (즉, 성공적인 인증 후 프리즘 모듈이로드되고 뷰가 적절히 전환됨) 컴퓨터 이름 (http://xps1521-pc:8086) 또는 IP 주소 (http://192.168.10.104:8086)를 통해 액세스 할 때 예상대로 작동하지 않습니다. 즉, 성공적인 인증 후 프리즘 모듈은 로드 됨 BUT 뷰가 전환되지 않음). 왜 이런 일이 일어나고 있는지 이해할 수 없으며 도움/안내에 감사드립니다.

감사합니다.

답변

1

으로 MethodAccessException 내 불황을 추적, 나는이 문제라고 생각합니다.

대부분의 경우 Silverlight가 완전 신뢰 모드로 실행될 때만 실행할 수있는 ViewModel 구독 처리기에서 일종의 리플렉션 코드 (또는 UI 대화 상자 열기)를 사용하고 있습니다.

그래서 silverilght 응용 프로그램의 URL이 localhost (개발자 서버) 이외의 것으로 변경되면 완전 신뢰 모드로 실행되지 않으므로 예외가 발생합니다.

[SecurityCritical] 속성을 사용하여 메서드 호출을 실행하고 있는지 확인해야합니다. 그렇다면 실제 신뢰 모드에서 Silverlight 클라이언트를 실행해야하는 것보다 실제로이 방법을 실행해야하는 경우 (인트라넷 시나리오에서만 가능하므로 권장하지 않음)

info 그것이 귀하의 의견

+0

덕분에 도움이되기를 바랍니다 이상이를 참조하십시오. 보안 문제 일 가능성이 큽니다. Silverlight 응용 프로그램은 인트라넷 환경에서만 실행되기 때문에 완전 신뢰 모드에 대한 예약이 없습니다. – Izmoto

+0

이벤트 핸들러에서 실행중인 코드를 게시하면 자세히 살펴볼 수 있습니다. – tmoreira

+0

http://msdn.microsoft.com/en-us/library/ff921131(PandP.20).aspx - Silverlight는 람다 식 또는 익명 대리자에 대한 약한 참조를 지원하지 않는다는 것을 알게되었습니다. Silverlight의 경우 별도의 메서드를 호출해야합니다. * 람다 식으로 Prism EventAggregator를 사용하고 별도의 메서드를 사용하면 예외가 발생합니다. 예외는 더 이상 발생하지 않습니다. – Izmoto

0

내가 제출 한 예외의 정밀 조사 후 설명 here