2009-05-05 2 views
1

WebHttpBinding으로 구성된 IIS 호스팅 WCF 서비스가 있습니다. 새 VSB를 만들 때 VS2008이 만드는 것과 동일한 기본 WCF 서비스입니다. 내가 만든 유일한 변경 사항은 자바 스크립트에서 호출되도록 허용하는 것입니다.원격 클라이언트 용 WCF에서 이상한 포트가보고되었습니다.

테스트 메소드 GetData (int value)에서 원격 클라이언트 IP 주소, 포트 및 사용자 에이전트를 표시하는 문자열을 반환합니다. 내가 돌아 오는 포트 번호를 기대하지 않는다면 모든 것이 잘 작동합니다. 나는 항구 80을 기대하고 있지만 대신 49353과 같은 것을 얻는다. 아래는 내가 부르고있는 방법이다.

public string GetData(int value) 
    { 
     OperationContext context = OperationContext.Current; 

     MessageProperties messageProperties = context.IncomingMessageProperties; 
     RemoteEndpointMessageProperty endpointProperty = messageProperties[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty; 



     return string.Format("Hello {0}! \r\naddress: {1}\r\nport: {2}\r\nuseragent: {3}", 
      value, endpointProperty.Address, endpointProperty.Port, WebOperationContext.Current.IncomingRequest.UserAgent); 
    } 

내가 말했듯이, 나는 자바 스크립트에서이 메소드를 호출합니다. IIS는 포트 80에 대해 구성되므로 포트가 잘못보고 된 이유를 모르겠습니다.

답변

3

나는 이것이 조금 뒤쪽에 있다고 생각합니다. 포트 80은 듣고있는 곳이지만 한 번 발생하면 새로운 임시 포트로 전달하여 해당 연결을 처리합니다.

또한 클라이언트는 임시 포트를 사용하여 포트 80에 대한 연결을 열 수도 있습니다. 따라서 클라이언트의 포트는 일반적인 "고정"포트 범위 (0-1024) 이외의 "임의"포트 번호 일 가능성이 큽니다.

+0

Doh! 나는 당신이 옳다고 내기를 기꺼이합니다. 그 모든 비가 우리가 여기에 도착하고있어, 나를 피곤하게 만든다. 재교육 주셔서 감사합니다. –

관련 문제