Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Использование службы WCF из Asp.net WebApi

Автор вопроса: Tabish SarwarОтветов: 2

Я создаю Asp.net Webapi для наших услуг. С другой стороны, мне нужно извлечь некоторые данные из существующей службы WCF.

Я создаю веб-ссылку в моем проекте asp.net webapi. Но, похоже, прокси не сгенерирован.

Я пробовал с VS 2012 RC, а затем с VS 2010. Я не могу ссылаться на него из моей модели/контроллера в любом месте проекта. Есть ли другой способ создания прокси в MVC webapi. Я не знаю, что не так.

Должен ли он что-то делать, например, я не могу использовать службу wcf из службы отдыха?

Что мне здесь не хватает.

Спасибо.

wcf

Ответы

Ответ 1 · рейтинг 3 · Martin4ndersen

Попробуйте добавить ссылку на службу, а не на веб-ссылку, которая используется для устаревших веб-служб ASP.NET (ASMX).

Я только что попробовал это, и он работает так, как ожидалось. Вот что я сделал:

  1. Создал новое веб-приложение ASP.NET MVC 4 и выбрал шаблон проекта веб-API.
  2. В решение добавлен проект приложения-службы WCF. Не забудьте создать его, прежде чем добавлять в него ссылку на службу.
  3. В проекте веб-APi я добавил ссылку на службу WCF.
  4. Заменил код в ValuesController.Get(int id) на

    public string Get(int id)
    {
        var serviceReference1 = new ServiceReference1.Service1Client();
        return serviceReference1.GetData(id);
    }
    

При просмотре

http://localhost:<port>/api/values/2

я получаю

<?xml version="1.0" encoding="utf-8"?><string>You entered: 2</string>

Ответ 2 · рейтинг 1 · sanjay

Если ссылка на вашу службу добавлена, но файл reference.cs сгенерирован пустым, это может быть проблемой из-за конфликта типов. Следующее обходное решение сработало для меня.

Чтобы исправить это, щелкните правой кнопкой мыши ссылку на службу, выберите "Настроить ссылку на службу". На экране конфигурации снимите флажок "Повторно использовать типы в сборках, на которые ссылаются". Он должен автоматически обновлять ссылку на службу, если не обновлять принудительно.

Это должно правильно сгенерировать файл reference.cs.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы