2013-01-24 2 views
1

해당 주소를 사용하여 WCF 서비스를 찾고 싶습니다. 내가 링크를 사용하여 WCF 테스트 클라이언트를 사용하여 검색하려고하면 내가 잘못 을 뭘하는지, 작동 ...링크로 WCF 서비스 검색

var uri = "http://bla-blabla.svc" 
var obj = new DiscoveryClient(new UdpDiscoveryEndpoint()); 
     var findCriteria = new FindCriteria(); 
     findCriteria.Duration = TimeSpan.FromSeconds(10); 
     findCriteria.Scopes.Add(new Uri(uri)); 
     var findResponse = obj.Find(findCriteria); 

그러나 아무것도 발견하지 않습니다 ... : 나는 다음과 같은 코드를 작성 ?

답변

0

WCF 테스트 클라이언트를 사용하는 경우 검색 기능을 사용하고 있지 않습니다. 이것은 서비스의 wsdl/메타 데이터에 대한 고전적인 호출입니다.

대상 서비스는 호스트 또는 구성에 무언가를 추가하여 검색 가능해야합니다.

코드

ServiceHost host = new ServiceHost(...); 
host.AddServiceEndpoint(new UdpDiscoveryEndpoint()); 
ServiceDiscoveryBehavior discovery = new ServiceDiscoveryBehavior(); 
host.Description.Behaviors.Add(discovery); 
host.Open(); 

구성 처음에는

<services> 
     <service name = "MyService"> 
      <endpoint 
      kind = "udpDiscoveryEndpoint" 
      /> 
      ... 
     </service> 
    </services> 
    <behaviors> 
     <serviceBehaviors> 
      <behavior> 
      <serviceDiscovery/> 
      </behavior> 
     </serviceBehaviors> 
    </behaviors> 

도 찾기 기준의 범위를 제거합니다.