문제

저는 WCF PollingDuplexHttpBinding 채널을 사용하여 Silverlight 클라이언트에 알림을 푸시하고 있습니다.대부분의 경우 잘 작동하지만 몇 가지 기본 세션 관리 기능이 제대로 작동하도록 하기 위해 노력하고 있습니다.

내가 가진 가장 큰 문제는 클라이언트가 세션을 마쳤으며 더 이상 알림이 필요하지 않다는 것을 서버에 알리려는 것입니다.클라이언트의 CloseAsync 호출은 채널의 클라이언트 측이 해당 세션에 대해서만 새 알림 요청을 보내는 것을 중지하고 CloseSession SOAP 요청도 서버에 보냅니다.문제는 채널의 서버 측에서 CloseSession 작업을 인식하지 못한다는 404를 다시 보내는 것입니다.내가 볼 수 있는 한 오류는 PollingDuplexHttpBinding 채널의 내부에서 발생하며 세션 종료가 제대로 처리될 수 있도록 응용 프로그램에 적용되지 않습니다.

다른 사람 중에 이 문제를 발견하고 해결 방법을 찾은 사람이 있습니까?

도움이 되었습니까?

해결책

외모로는 할 수 없는 일이지만, PollingDuplexHttpBinding에 대한 불만.

다른 팁

그 불만스러운 기사는 정말 훌륭했고, Duplex over HTTP를 수행할 때 Silverlight가 매우 느리게 작동하면서 겪었던 관련 문제를 간접적으로 해결했습니다.기본적으로 이 문제는 웹 사이트에서 ASP.Net 세션 상태를 켜고 Silverlight의 BroserHttp 스택(ClientHttp 스택 대신)을 사용하여 발생합니다.

Yavor는 (이 기사에서) 문제를 잘 설명합니다.

http://blogs.msdn.com/b/silverlightws/archive/2009/09/30/having-a-pollingduplex-service-and-any-other-wcf-service-in-the-same-website-causes- silverlight-calls-to-be-slow.aspx

이 문제가 발생한 경우 간단한 해결 방법은 서비스를 호출하기 전에 ClientHttp 스택에 대한 경로를 등록하는 것입니다.이는 간단히 다음을 호출하여 수행할 수 있습니다.

WebRequest.RegisterPrefix(requestUri.AbsoluteUri, WebRequestCreator.ClientHttp);

requestUri는 서비스의 Uri입니다.도움이 되었기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top