Подтвердить что ты не робот

Пользовательский инструмент Предупреждение: не удается импортировать wsdl: portType

Я не уверен, что это за ошибка. Думал, что я попрошу вас, ребята, в стеке переполнить то, что может быть. Мне пришлось изменить контракт на моем сервисе, на тестовом клиенте, который я использовал, я обновил ссылку на службу. Теперь я получаю это предупреждение. Как я могу решить эту проблему.

4b9b3361

Ответ 1

Я нашел ответы в Что означает эта ошибка WCF: " Предупреждение о настраиваемом инструменте: невозможно импортировать справку wsdl: portType ". В моем случае я выбрал снятие флажка "Повторное использование типов", и это решило проблему.

Дополнительные мысли: SOA, Распределенные объекты и & Муфта

"Ориентированное на сервис" видение, подразумеваемое WSDL и стандартами WS- *, заключается в том, что сам WSDL сообщает вашему клиенту все, что вам нужно знать, чтобы использовать сервис. С этой точки зрения снятие флажка "Повторное использование типов" является правильным подходом. Вы не должны повторно использовать типы откуда угодно, кроме wsdl.

Установка флажка "типы повторного использования" является скорее подходом "распределенных объектов": ваш клиент и служба становятся связанными через типы в совместно используемой dll. Это сильная распределенная зависимость. Если общие объекты обновляются, служба и все ее клиенты должны обновляться синхронно друг с другом. Это одна из причин, по которой распределенные объекты сильно потеряли популярность, и SOA вступила во владение.

Если ваша компания не выбрала (возможно, случайно, поделившись библиотеками в фиде Nuget) архитектуру распределенных объектов и не поняла бы стоимость, я бы всегда снимал флажки для типов повторного использования.

Это уменьшает сцепление.

Ответ 2

Это был первый ответ, который я нашел при поиске аналогичной проблемы, но моя проблема была атрибутом [DataContract], примененным к перечислению без каких-либо атрибутов [DataMember], что делает пустой контракт данных.

Я использовал это как ресурс:

http://www.lukepuplett.com/2010/02/empty-datacontract-causes-misleading.html

Кажется, что желательно, чтобы WCF выводил datacontract для перечислений.

Ответ 3

Я нахожу, что это также может быть разрешено с помощью "singleWsdl" вместо "wsdl" в конце. Есть несколько файлов WSDL, к которым привязаны, поэтому слишком наивно для их просмотра могут вызывать ошибки.