2011-05-24 115 views
3

有人知道如何設置發現超時。默認值是10-15s,它接縫有點長...WCF和服務發現超時

在女巫方面是否必須配置?服務?客戶?

服務:

  // Add a ServiceDiscoveryBehavior 
      host.Description.Behaviors.Add(new ServiceDiscoveryBehavior()); 
      // Add a UdpDiscoveryEndpoint 
      host.AddServiceEndpoint(new UdpDiscoveryEndpoint()); 

客戶:

EndpointAddress endPoint = null; 

    endPoint = FindCalculatorServiceAddress(); 

    static EndpointAddress FindCalculatorServiceAddress() 
    { 
     // Create DiscoveryClient 
     DiscoveryClient discoveryClient = new DiscoveryClient(new UdpDiscoveryEndpoint()); 

     // Find IStringReverser endpoints    
     FindResponse findResponse = discoveryClient.Find(new FindCriteria(typeof(IStringReverser))); 

     if (findResponse.Endpoints.Count > 0) 
     { 
      return findResponse.Endpoints[0].Address; 
     } 
     else 
     { 
      return null; 
     } 
    } 

在此先感謝

+0

順便說一句,如果您通過FindProgressChanged和FindCompleted事件而不是同步的Find()方法使用FindAsync()方法,只要端點結果出現,就會觸發FindProgressChanged事件這意味着您可以立即訪問它們,而不必等到搜索結束。如果你對更多結果不感興趣,或者只是讓它運行到超時,那麼你可以選擇'CancelAsync()',此時'FindCompleted'觸發。 – Alex 2015-02-06 06:47:40

回答