wcf извлекает wsdl из службы WCF с помощью сглаженного WSDL
Вопрос
У меня есть веб-служба wcf, и мне нужно предоставить клиенту файлы wsdl.
Ранее я использовал svcutil для .dll и все было нормально.
Однако недавно я внедрил factory для выравнивания файла wsdl (re: http://wcfextras.codeplex.com/).
Мои вопросы заключаются в следующем:Есть ли в любом случае возможность либо использовать svcutil на .svc для извлечения сжатых файлов .WSDL, либо, возможно, каким-то образом подключить веб-службу, когда она запущена на локальном сервере webdev для извлечения .Файлы WSDL?
Насколько мне известно, если бы я должен был перейти на свой локальный сервер веб-разработки (http://localhost:2916/Service.svc?wsdl) и если бы я просмотрел исходный код и сохранил его как .wsdl, то понял бы, что это неправильно и не предоставило бы всей соответствующей информации.
примечание:Смотрите ниже, как Фабрика используется в файле .svc....
<% @ServiceHost Factory="CompanyName.ServiceModel.Extensions.Description.FlatWsdlServiceHostFactory" language=c# Service="CompanyName.WebServices.Service"%>
Спасибо, Стивен
Решение
Да, вы все еще должны быть в состоянии использовать svcutil
для извлечения WSDL из вашего сервиса, даже если у вас установлено расширение, которое сгладит WSDL.
Чтобы загрузить документ (ы) метаданных из вашей запущенной службы, используйте эту команду:
svcutil /t:metadata http://service/metadataEndpoint
Вам нужно указать свой URL-адрес на конечную точку метаданных, определенную в вашей конфигурации, напримерконечная точка, которая определена для использования "mexHttpBinding" или "mexTcpBinding" и контракта "IMetadataExchange".
Если у вас не определены какие-либо конечные точки обмена метаданными, вы, очевидно, не сможете получить эту информацию.