Добавление ссылки WCF через Добавить веб-ссылку

Я использую Visual Studio 2008 с проектом, ориентированным на .NET 2.0. Мне нужно добавить ссылку на службу WCF, определенную в другом проекте в том же решении. Проект WCF нацелен на .NET 3.5, а служба использует basicHttpBinding.

Поскольку клиентский проект настроен для работы с .NET 2.0, у меня нет возможности «Добавить ссылку на службу». Когда я пытаюсь «Добавить веб-ссылку» и выбираю «Веб-службы в этом решении», я получаю следующее сообщение:

В текущем решении не обнаружены веб-службы.

Что я делаю неправильно?


person FishBasketGordo    schedule 03.05.2012    source источник


Ответы (1)


Веб-ссылки относятся к устаревшей технологии ASMX. «Добавить веб-ссылку», естественно, не знает о существовании WCF, поэтому неудивительно, что он не знает о вашей службе WCF в решении. Он ищет файлы .asmx.

Попробуйте сначала запустить службу, щелкнув файл .svc правой кнопкой мыши и выбрав «Просмотр в браузере». Затем укажите URL-адрес службы в диалоговом окне «Добавить веб-ссылку». Также убедитесь, что ваш сервис предоставляет свои метаданные, чтобы «? WSDL» сгенерировал WSDL для добавления веб-ссылки.

person John Saunders    schedule 03.05.2012
comment
У меня нет файлов .svc. Проект был создан с использованием шаблона WCF Service Library, который, как мне кажется, по умолчанию не генерирует .svc. В моем файле .config есть конечная точка mex. Это из того, что мне нужно? - person FishBasketGordo; 04.05.2012
comment
Это примерно так, но вы должны разместить эту услугу. Один из способов - отладить службу, но если вы посмотрите на свойства Debug проекта, вы увидите, что F5 запускает программу wcfsvchost.exe. Вы можете запустить это вручную для размещения службы, а затем использовать Добавить веб-ссылку, указывающую на URL-адрес размещения. Обратите внимание, что вы можете отлаживать службу в одном экземпляре Visual Studio, а добавить веб-ссылку - в другом. - person John Saunders; 04.05.2012
comment
Я запустил свой проект службы, который вызвал тестовый клиент WCF, но все службы перечислены с адресом mex. Если я копирую адрес в браузер, я получаю сообщение об ошибке HTTP 400: неверный запрос. Я не уверен, как получить данные WSDL для добавления моей веб-ссылки. - person FishBasketGordo; 04.05.2012