WSDL службы WCF обычно извлекается путем добавления ?wsdl
к URL-адресу HTTP (S) службы. Но вы должны разрешить этот поиск WSDL в ServiceMetadataBehavior
. WCF 4 позволяет это по умолчанию для всех служб на основе HTTP, если вы используете шаблон проекта приложения-службы WCF:
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>
Также, набрав в браузере URL-адрес вашей службы на основе HTTP (S), вы получите страницу справки с гиперссылкой на WSDL.
В WCF 3.x вы должны разрешить это вручную и использовать конфигурацию поведения в определении сервиса.
<behaviors>
<serviceBehaviors>
<behavior name="myConfig">
<!-- requires HTTPS to be configured for your service -->
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service name="..." behaviorConfiguration="myConfig">
...
</service>
</services>
Получение WSDL таким способом возможно только через HTTP (S) GET. Вы также можете использовать протокол WS-MetadataExchange для получения метаданных службы из Конечная точка метаданных - он также поддерживает различные транспортные протоколы. WSDL в WCF предназначен только для служб SOAP.