Веб-служба .net: Невозможно добавить ссылку на службу, только веб-ссылку - PullRequest
13 голосов
/ 04 марта 2010

У меня есть существующий проект, который использует веб-сервисы. Один был добавлен в качестве ссылки на сервис, а другой в качестве веб-ссылки. Я не помню, почему он был добавлен в качестве веб-ссылки, но, возможно, это потому, что я не смог заставить его работать!

Существующая ссылка на один веб-сервис работает нормально, поэтому проблема не в версии .net.

Я могу успешно создать ссылку на службу для второго веб-службы, но ни один из методов не доступен. .Wsdl показывает схему, но Reference.vb показывает только пространство имен и ни один из методов.

Чтобы уточнить, это два разных сторонних поставщика веб-услуг.

Мы хотели бы перейти к справочнику услуг, чтобы иметь больше контроля над конфигурацией, поскольку у нас возникают различные проблемы с таймаутами.

Кто-нибудь сталкивался с этим раньше?

Редактировать

Имеет ли значение, что по адресу есть две службы?

Редактировать

Я использую .net 3.5 и VS2008.

альтернативный текст http://img139.imageshack.us/img139/719/addservicereference.gif

Ответы [ 5 ]

10 голосов
/ 17 марта 2010

Функция добавления справочника услуг печально известна как гвоздика и содержит ошибки - я использую ее большую часть времени, но иногда я сталкиваюсь с проблемами, когда генерируемый ею код либо похож на этот (то есть не существует), либо не используется повторно типы, где он должен делать.

Вам следует попробовать использовать инструмент командной строки svcutil (откройте командную строку VS, чтобы запустить его), который, хотя и похож на опорную функцию VS, на самом деле представляет собой совершенно другую кодовую базу. Вы можете использовать это для генерации прокси-сервера, всех типов клиентской стороны и т. Д., Так же как и в случае с сервисной справочной службой.

Самое главное - кажется, что он работает почти все время - до тех пор, пока сама служба нормальна.

1 голос
/ 13 марта 2010

Что именно вы имеете в виду, когда говорите «методы недоступны»?

Многие люди, которые говорят подобные вещи, ожидают, что методы будут доступны точно так же, как они были с «Добавить веб-ссылку». Но они разные. См. " Как использовать веб-службу ".

0 голосов
/ 20 ноября 2013

Хоть старый пост, но просто хочу поделиться своим опытом, чтобы он мог кому-нибудь помочь сегодня.

При обмене данными с веб-сервисами, разработанными на таких платформах, как Java, Phython или Ruby, вероятно, причина того, что классы Stub / Proxy не генерируются из-за проблем соответствия (стандарт взаимодействия WS-I) Вы можете столкнуться с ошибками, такими как:

Не удалось сгенерировать код для ссылки на сервис ServiceReferenceName . Пожалуйста, проверьте другие сообщения об ошибках и предупреждения для деталей ...

Фактическая информация об ошибке, которую вы можете получить, используя svcutil.exe, конечно, в этом случае ошибка может выглядеть примерно так:

Ошибка: невозможно импортировать wsdl: portType

Лучше использовать Справочник по веб-сервисам для таких сервисов, чем Справочник по сервисам . (Добавить ссылку на службу -> Дополнительно -> Добавить ссылку на веб-сайт ...)

Если вы увлечены игрой с XML и WSDL, вы можете решить проблему с связыванием & portType. Возможно, необходимо исправить ошибки import & include, если я правильно помню, как в прошлый раз я потратил впустую время, исправляя его, чтобы он работал с опцией Service Reference.

0 голосов
/ 16 марта 2010

Вы пытались добавить ссылку на проект C # вместо VB.NET?

Я заметил, что все методы в вашем сервисе называются «getXXX», возможно, это противоречит некоторой «интеллектуальной» обработке в генераторе VB.NET.

Попробуйте создать новый проект C # и добавить ссылку на службу.

0 голосов
/ 14 марта 2010

Я подозреваю, что он пытается повторно использовать типы из другой ссылки. Нажмите кнопку «Дополнительно ...» и снимите флажок «повторное использование типов в ссылочных сборках». Вам также следует убедиться, что имя службы уникально, чтобы избежать конфликтов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...