какие файлы предоставить клиенту для .wsdl
Вопрос
спасибо за любую помощь.
Я создаю веб-службу wcf для внешнего клиента.Клиент запрашивает копию файла wsdl.В настоящее время я жду возможности предоставить клиенту доступ к услуге.
когда я захожу на свой локальный веб-сервер, на котором запущена служба (http://localhost/Services.svc?wsdl) Показаны WSDL, предоставленные данные содержат подписи метода (из кода .SVC позади), но не содержат включенные объекты модели (клиент, заказ, EXT).
Чтобы получить эти объекты, я могу найти ссылки в показанных данных и перейти по URL-адресу.
Для меня, чтобы предоставить клиенту всю необходимую информацию, чтобы у них был весь WSDL, я должен предоставить основную схему, а также каждую из импортированных схем?
или есть ли другой способ сделать это (кроме обращения клиента к серверу)
то есть:есть ли способ упаковать их все в один файл?
(Похоже, можно будет извлечь каждый из этих файлов?)
Если бы я предоставил ZIP-файл с каждым файлом, было бы этого достаточно?
Спасибо, Стивен
Решение
Как вы уже заметили, WCF упаковывает свои WSDL и XSD (схему XML для описания пересылаемых данных) в различные части.На них ссылаются из вашего основного WSDL с дополнительными href.
Или еще лучше:вы можете запустить команду «svcutil -metadata» в командной строке для DLL или EXE, которая содержит реализацию вашей службы — это создаст все необходимые файлы (обычно несколько WSDl и несколько XSD) в каталоге, где вы запускаете команду svcutil.Обычно это более надежный способ, чем объединение файлов WSDL и XSD из URL-адреса ?wsdl (обычно вам не хватает одного или двух файлов).
Марк
Другие советы
Если бы вы вручную загрузили каждый суб-WSDL и XSD, на которые ссылаются, то да, это сработало бы;но это, мягко говоря, громоздко.
Вариант, который стоит рассмотреть, — это использовать Кристиана Вейера. Расширения WCF для выравнивания вашего WSDL, чтобы WCF генерировал все в одном файле, а затем передал его вашему клиенту.