Search code examples
c#wcftimeoutwcf-discoverywebservice-discovery

WCF and service discovery timeout


Does someone know how to set the timeout for discovery. The default value is like 10-15s and it seams a bit long...

On witch side does it have to be configured? Service? Client?

Service:

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

Client:

    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;
        }
    }

Thanks in advance


Solution

  • I believe you need to set the Duration property of FindCriteria

    FindCriteria.Duration Property