WCF :“System.ServiceModel.Channels.ClientReliabledUplexSessionSthechannel을 열지 못했습니다.”

StackOverflow https://stackoverflow.com/questions/819871

문제

현재 콜백 계약 (듀플렉스)이있는 WCF 서비스가 있으며 컴퓨터에서 사용하는 응용 프로그램을 사용하면 모든 것이 잘 작동하지만 다른 컴퓨터에서 시도해 보면 연결되지 않습니다.

이 문제 가이 문제를 사용하여 전환 한 후에 발생하기 시작했습니다. wsDualHttpBinding (콜백의 경우) 내가 사용했을 때 wsHttpBinding 모든 것이 잘 작동했습니다.

웹 서비스가 다른 컴퓨터의 요청을 수락하지 않는 이유는 무엇입니까? 수정 해야하는 호스팅 설정입니까?


로그와 관련하여, 나는 이것들을 얻고있다 :

Alt Text http://img17.imageshack.us/img17/4628/wcfissue.jpg

00:01:00의 할당 된 시간 초과 내에 오픈 작업이 완료되지 않았습니다. 이 작업에 할당 된 시간은 더 긴 시간 초과의 일부일 수 있습니다.

시스템을 열지 못했습니다 .ServiceModel.Channels.ClientReliabledUplexSessionChannel

결함이있는 System.serviceModel.Channels.ClientReliabledUplexSessionChannel

결함이있는 System.serviceModel.Channels.ServiceChannel

System.servicemodel.Channels.ServiceChannel을 열지 못했습니다


포트는 내 라우터 (TCP 및 UDP)에서 열려 있으므로 문제가되지 않습니다.

서비스 속성과 관련하여 이것이 제가 사용하는 것입니다.

상호 작용:

[ServiceContract(Name = "MusicRepo_DBAccess_Service", 
                 CallbackContract = typeof(IOnlineUsersCallback),
                 SessionMode=SessionMode.Required)]

서비스:

[ServiceBehavior(
        ConcurrencyMode=ConcurrencyMode.Reentrant, 
        InstanceContextMode=InstanceContextMode.Single)]

업데이트

관련하여 오리온 에드워즈' 게시하다:

  • 방화벽이 없습니다
  • 지점 1을 참조하십시오
  • 네, 내 라우터에 포트가 전달 되었기 때문에 할 수 있습니다.
  • IIS를 사용하여 서버를 호스팅하고 있습니다.

문제는이 문제가 내가 전환했을 때 발생하기 시작했다는 것입니다. wsHttpBinding (잘 작동했습니다) wsDualHttpBinding (콜백이 필요했기 때문에)


업데이트

나는 이제 전환했다 wsDualHttpBinding 에게 NetTcpBinding 그리고 어떤 이유로, 모든 것이 잘 작동합니다.

나는 사용했다 이 기사 IIS에서 호스팅을 설정하는 데 도움을주기 위해 콜백과 함께 모든 것이 예상대로 작동합니다.

도움이 되었습니까?

해결책

나는 이제 전환했다 wsDualHttpBinding 에게 NetTcpBinding 그리고 어떤 이유로, 모든 것이 잘 작동합니다.

나는 사용했다 이 기사 IIS에서 호스팅을 설정하는 데 도움을주기 위해 콜백과 함께 모든 것이 예상대로 작동합니다.

다른 팁

서버 및 클라이언트 구성 설정을 게시하면 도움이됩니다.

다음은 wsdualhttpbinding이 어떻게 작동하는지에 대한 요약입니다. MSDN (내 강조) : :

WSDUALHTTPBINDING은 WSHTTPBinding과 웹 서비스 프로토콜과 동일한 지원을 제공하지만 이중 계약과 함께 사용합니다. wsdualhttpbinding은 비누 보안 만 지원하며 안정적인 메시지가 필요합니다. 이 바인딩은 클라이언트가 서비스에 콜백 엔드 포인트를 제공하는 공개 URI를 가지고 있어야합니다. ClientBaseAddress 속성에 의해 제공됩니다. 이중 바인딩은 클라이언트의 IP 주소를 서비스에 노출시킵니다. 클라이언트는 보안을 사용하여 신뢰하는 서비스에만 연결되도록해야합니다.

이 결합은 하나 이상의 비누 중개자를 통해 안정적으로 통신하는 데 사용될 수 있습니다.

기본적 으로이 바인딩은 신뢰성을위한 WS- 릴리아 블레칭, 메시지 보안 및 인증을위한 WS-SECURITY, 메시지 전달을위한 HTTP 및 텍스트/XML 메시지 인코딩을 통해 런타임 스택을 생성합니다.

확인해야 할 사항 :

  • 윈도우 방화벽
  • 안티 바이러스 제품의 방화벽
  • 원격 기계에서 포트에 텔넷을 텔넷에 넣을 수 있습니까?
  • "서버"가 ASP.NET Development Server에서 실행 중입니까? LocalHosts의 요청 만 수락합니다. ServiceHost 또는 IIS에서 호스팅하십시오.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top