Получение метаданных из конечной точки webHttpBinding
со ссылкой на my предыдущий вопрос, Я хотел бы знать, как извлечь информацию о службе WCF из клиентского приложения, чтобы узнать, какие методы/типы предоставляются, если служба предоставляет только одну конечную точку, использующую webHttpBinding?
чтобы подвести итог, в моем предыдущем вопросе я узнал, что конечная точка с помощью webHttpBinding не подвергается воздействию в сгенерированном WSDL, потому что это будет конечная точка JSON и просто не совместимый.
2 ответов
WebHttpBinding-это привязка на основе REST-REST делает не предоставлять метаданные, такие как WSDL/XSD, в отличие от SOAP.
в настоящее время нет способа извлечь метаданные из конечной точки REST. Предпринимаются некоторые усилия по созданию аналогичной конструкции для REST под названием WADL (язык описания веб-приложения) - но это еще далеко не стандартизированы еще.
на данный момент, с конечными точками REST, вы должны либо выяснить это самостоятельно, либо вам нужно иметь некоторую документацию, предоставленную поставщиком услуг, например, на статической HTML-странице или что-то еще.
.NET 4 предоставляет некоторый уровень автоматически сгенерированной страницы справки-см. этот блог или документы MSDN для получения дополнительной информации. Но это все еще далеко не так формализовано и интерпретируемо машиной, как WSDL/XSD.
интересно, почему остальные образцы говорят вам выставить конечную точку MEX вообще. Это не нужно, и вот как его чисто удалить:
удалите конечную точку MEX из раздела службы файла конфигурации.
удалить строку с включенными метаданными службы в разделе Поведение службы конфигурационного файла.
-
отредактируйте проект Visual Studio (предполагая, что это библиотека служб WCF) и удалите строку:
/ client: "WcfTestClient.exe "
Если у вас есть другие услуги без отдыха, вы захотите оставить последние 2 части. Вы должны удалить клиент WCF при отключении MEX, иначе он будет жаловаться во время отладки, если он не может перечислить какие-либо службы в проекте (независимо от того, имеют ли они полезные метаданные или нет).