<endpointDiscovery>

Specifies the various discovery settings for an endpoint, such as its discoverability, scopes, and any custom extensions to its metadata.

<system.ServiceModel>
<behaviors>
<endpointBehaviors>
<behavior>
<endpointDiscovery>

Syntax

<behaviors>
  <endpointBehaviors>
    <behavior name="String">
      <endpointDiscovery enabled="Boolean">
        <scopes>
          <add scope="URI"/>
        </scopes>
        <extensions />
      </endpointDiscovery>
    </behavior>
  </endpointBehaviors>
</behaviors>  

Attributes and Elements

The following sections describe attributes, child elements, and parent elements.

Attributes

Attribute Description
enabled A Boolean value that that specifies whether discoverability is enabled on this endpoint. The default is false.

Child Elements

Element Description
<scopes> A collection of scope URIs for the endpoint. More than one scope Uris can be associated with a single endpoint.
<extensions> [of <endpointDiscovery>] A collection of XML elements that allows you to specify custom metadata to be published for an endpoint.
<types> A collection of interfaces to search for.

Parent Elements

Element Description
<behavior> Specifies a behavior element.

Remarks

When added to the endpoint’s behavior configuration and with the enabled attribute set to true, this configuration element enables its discoverability. In addition, you can use the <scopes>child element to specifying custom scope Uris that can be used to filter service endpoints during query, as well as the <extensions> child element to specify custom metadata that should be published along with the standard discoverable metadata (EPR, ContractTypeName, BindingName, Scope and ListenURI).

This configuration element is dependent on the <serviceDiscovery> element that provides the service level control of discoverability. This means that this element’s settings are ignored if <serviceDiscovery> is not present in the configuration.

Example

The following configuration example specifies filtering scopes and extension metadata to be published for an endpoint.

<services>  
  <service name="CalculatorService"  
           behaviorConfiguration="CalculatorServiceBehavior">  
     <endpoint binding="basicHttpBinding"  
              address="calculator"  
              contract="ICalculatorService"  
              behaviorConfiguration="calculatorEndpointBehavior" />  
  </service>  
</services>  
<behaviors>  
  <serviceBehaviors>  
    <behavior name="CalculatorServiceBehavior">  
      <serviceDiscovery />  
    </behavior>  
  </serviceBehaviors>  
  <endpointBehaviors>  
    <behavior name="calculatorEndpointBehavior">  
      <endpointDiscovery enabled="true">  
        <scopes>  
          <add scope="http://contoso/test1"/>  
          <add scope="http://contoso/test2"/>  
        </scopes>  
        <extensions>  
          <e:Publisher xmlns:e="http://example.org">  
            <e:Name>The Example Organization</e:Name>  
            <e:Address>One Example Way, ExampleTown, EX 12345</e:Address>  
            <e:Contact>support@example.org</e:Contact>  
          </e:Publisher>  
          <AnotherCustomMetadata>Custom Metadata</AnotherCustomMetadata>  
        </extensions>  
      </endpointDiscovery>  
    </behavior>  
  </endpointBehaviors>  
</behaviors>  

See Also

EndpointDiscoveryBehavior