Как добавить ссылку на службу visual studio
в Visual Studio 2015 Preview (Pre Release), как я могу добавить ссылку на службу для WCF сервис?
Предварительные Условия Решения
код project.json должно выглядеть примерно так:
создание ссылочных классов службы
во-первых, давайте создадим папку, Service References , в .
далее, откройте Командная строка разработчика для VS2015 и перейдите к MapClient каталог проекта:
убедится MapService выполняется и выполняется следующая команда:
это должно генерировать два файла, output.config и MapServiceReference.cs .
создайте прокси-сервер клиента на основе кода
вместо этого давайте создадим прокси-сервер клиента в коде:
теперь вы можете использовать clientProxy экземпляр для доступа к любому контракту операции в IMapService .
в качестве sidenote, вероятно, было бы лучше создать файл конфигурации key:value, который хранит вашу привязку и конфигурацию конечной точки и использует Microsoft.Framework.ConfigurationModel.Configuration объект для заполнения ChannelFactory таким образом, вы можете сохранить конфигурацию службы из своего кода, но, надеюсь, этот пример поможет вам начать работу.
существует новое расширение Visual Studio, которое позволяет добавлять и использовать ссылки на службы, как в предыдущих версиях. Он также совместим с новым CoreCLR, я только что протестировал его.
в VS 2015 CTP 5, это позволяет нам добавить ссылку на библиотеку регулярных классов.
теперь запустите приложение.
редактировать: новое расширение для добавления подключенной службы, как указано в других ответах, все еще не работало для меня, но я нашел другую рабочую конфигурацию, хотя она требует вы не используете dnxcore50:
- имейте библиотеку классов, содержащую ссылку на службу (выберите фреймворк
- Ссылка, что один в aspnet5 с правой кнопкой мыши на ссылки (создаст все обертки stuff)
имейте модель обслуживания и необходимую dll сериализации в разделе "рамки" проекта.json (dnxcore необходимо удалить)
вы должны быть в состоянии сделать, где это нужно:
это сработало для меня:
я следовал инструкции в то же время, предусмотренных известные проблемы для beta4 (найти на странице "WCF") по этой ссылке:
Итак, мои шаги где:
от app.config to web.config
скопировал весь список отсутствующих зависимостей из ссылки выше в .в JSON, при общих зависимостях, оставляя в покое конкретные фреймворки (попытка ссылаться на dotnet4.6 библиотека классов как зависимость aspnet framework дала много отсутствующих типов в этой структуре)
другой потенциальный способ сделать это, который сработал для меня, - просто добавить проект dll в решение и добавить ссылку на службу здесь, как обычно, - включить dll в проект MVC и ссылку на службы.
вам просто нужно скопировать содержимое приложения.config в проектах MVC приложения.конфиг - да, приложение.config, а не web.конфиг.
Перед написанием кода для внешних компонентов или подключенных служб необходимо включить в проект ссылки на них. По сути, ссылка — это запись в файле проекта, которая содержит сведения, необходимые Visual Studio для поиска компонента или службы.
Чтобы добавить ссылку, в обозревателе решений щелкните правой кнопкой мыши узел Ссылки или Зависимости и выберите команду Добавить ссылку. Вы также можете щелкнуть узел проекта правой кнопкой мыши и выбрать пункт Добавить > Ссылка. Дополнительные сведения см. в разделе Практическое руководство. Добавление и удаление ссылок.
Вы можете добавить ссылку на следующие типы компонентов и служб:
Приложения универсальной платформы Windows
другие сборки или библиотеки классов проектов в том же решении;
Ссылки на приложения UWP
Ссылки на проекты
Проекты универсальной платформы Windows (UWP) могут создавать ссылки на другие проекты UWP в решении либо на двоичные файлы или проекты, ориентированные на Windows 8.1, при условии, что эти проекты не используют интерфейсы API, которые являются устаревшими в Windows 10 и более поздних версиях. Более подробную информацию см. в разделе Перенос приложения из среды выполнения Windows 8 в UWP.
Если вы решили изменить целевую платформу проектов Windows 8.1 на Windows 10 или более поздней версии, ознакомьтесь со статьей Перенос, миграция и обновление проектов Visual Studio.
Справочник по пакетам SDK расширений
Если выяснится, что пакет SDK расширений, на который ссылается ваше приложение, не поддерживается, то вы должны выполнить следующие действия.
Посмотреть имя проекта, который вызывает ошибку. Платформа, для которой предназначен этот проект, указывается в скобках рядом с именем проекта. Например, MyProjectName (Windows 8.1) означает, что проект MyProjectName предназначен для платформы Windows 8.1.
Перейдите на сайт поставщика неподдерживаемого пакета SDK расширений и установите версию пакета SDK расширений с зависимостями, совместимыми с версией платформы, для которой предназначен ваш проект.
Если проект предназначен исключительно для Windows 10 и установленный в предыдущем шаге пакет SDK расширений имеет зависимость от пакета среды выполнения Microsoft Visual C++, то совместимой с Windows 10 версией этого пакета является v14.0, которая устанавливается вместе с Visual Studio.
Если установленный на предыдущем шаге пакет SDK расширений имеет зависимости от других пакетов SDK расширений, перейдите на сайты поставщиков, являющихся владельцами зависимостей, и установите версии этих зависимостей, совместимые с версией платформы, для которой предназначен ваш проект.
Перезапустите Visual Studio и откройте ваше приложение.
Щелкните правой кнопкой мыши узел Ссылки или Зависимости в проекте, который вызвал ошибку, и выберите команду Добавить ссылку.
Добавление ссылки во время разработки
При создании ссылки на сборку в проекте Visual Studio ищет сборку в следующих расположениях:
Каталог текущего проекта. (Можно найти эти сборки, используя вкладку Обзор .)
Другие каталоги проектов в одном решении. (Вы можете найти эти сборки на вкладке Проекты .)
- Все проекты содержат неявную ссылку на библиотеку mscorlib.
- Все проекты содержат неявную ссылку на System.Core , даже если System.Core была удалена из списка ссылок.
- Проекты Visual Basic содержат неявную ссылку на Microsoft.VisualBasic.
Ссылки на общие компоненты во время выполнения
По умолчанию для свойства CopyLocal задается значение False , если сборка или компонент находится в глобальном кэше сборок или является компонентом платформы. В противном случае задается значение True. Ссылки проектов на проекты всегда имеют значение True.
Ссылки проектов на проекты
Ссылки проектов на проекты — это ссылки на проекты, которые содержат сборки. Вы добавляете их на вкладке Проекты диалогового окна "Диспетчер ссылок". Visual Studio может найти сборку, если задан путь к проекту.
Ссылки на общий проект
В отличие от большинства других типов проектов, у общего проекта нет двоичных выходных данных. Вместо этого код компилируется в каждый проект, который ссылается на него. Общие проекты позволяют писать общий код, на который ссылается несколько различных проектов приложений. Код компилируется как часть каждого ссылающегося проекта и может включать директивы компилятора, которые помогают внедрить функции конкретной платформы в общую базу кода. Добавьте ссылку на общий проект на вкладке Общие проекты диалогового окна "Диспетчер ссылок".
Ссылки на файлы
Ссылки на файлы — это прямые ссылки на сборки вне контекста проекта Visual Studio. Они создаются на вкладке Обзор диспетчера ссылок. Ссылку на файл следует использовать в случае, если имеется лишь сборка или компонент, но не проект, который создает ее в качестве выходных данных.
Ссылаться на службы следует только из надежного источника. Добавление ссылок из ненадежного источника может нарушить безопасность.
Prerequisites
Использование расширения
Функция WCF Web Service Reference (Ссылка на веб-службу WCF) применима к проектам, созданным с помощью следующих шаблонов проекта:
Отображается страница Подключенные службы, как показано на следующем рисунке:
На странице Подключенные службы выберите Microsoft WCF Web Service Reference Provider. Открывается мастер Настройка ссылки на веб-службу WCF:
3.1. В мастере Настройка ссылки на веб-службу WCF доступно несколько параметров для поиска служб:
- Чтобы найти службы, определенные в текущем решении, нажмите кнопку Обнаружение.
- Чтобы найти службы, размещенные по указанному адресу, введите URL-адрес службы в поле Адрес и нажмите кнопку Перейти.
- Чтобы выбрать WSDL-файл, содержащий информацию о метаданных веб-службы, нажмите кнопку Обзор.
3.2. Выберите службу в списке результатов поиска в поле Службы. При необходимости введите пространство имен для сформированного кода в соответствующем текстовом поле Пространство имен.
Форма Параметры типа данных позволяет уточнить созданные параметры конфигурации для ссылок на службу:
Параметр Повторно использовать типы в сборках, на которые есть ссылки удобен, когда типы данных, необходимые для создания кода ссылки на службу, определены в одной из сборок, на которые ссылается проект. Важно использовать эти существующие типы данных повторно, чтобы избежать конфликта типов во время компиляции или проблем во время выполнения.
При загрузке сведений о типах может возникнуть задержка, которая зависит от числа зависимостей проекта и других факторов, связанных с производительностью системы. Кнопка Готово во время загрузки недоступна, если только не снят флажок Повторно использовать типы в сборках, на которые есть ссылки.
По завершении нажмите кнопку Готово.
Отображая ход выполнения, инструмент:
- скачивает метаданные из службы WCF;
- формирует код для ссылок на службы в файле с именем reference.cs и добавляет его в узел Подключенные службы проекта;
- обновляет файл проекта (CSPROJ-файл) с использованием ссылок на пакеты NuGet, необходимых для компиляции и запуска на целевой платформе.
После завершения этих процессов можно создать экземпляр сформированного типа клиента WCF и вызвать операции службы.
См. также раздел
Отзывы и вопросы
Отзывы о продукте отправляйте в Сообщество разработчиков с помощью средства информирования о проблемах.
Приложение Windows Forms
Создание новой службы начинается, с создания windows приложения (шаблон проекта «Приложение Windows Forms»). Оно нам понадобится для тестирования службы. Приложение будет состоять из одной формы:
Разработка логики
На втором этапе создается проект «Библиотека классов». Именно здесь создаются классы описывающие логику работы будущей службы. Выделение логики в библиотеку классов позволяют нам пока не думать о реализации службы, а вести разработка стандартной windows программы. Плюсом такого подхода является: простота тестирования, легкость повторного использования кода, возможность создания автоматических тестов. В данном примере в библиотеке классов мы создадим только один класс:
Для тестирования — используем приложение созданное на первом этапе.
Создание службы
Когда логика новой службы написана и оттестирована, приступаем к созданию службы. В качестве шаблона используем стандартный шаблон: «Служба Windows». Реализация службы должна выглядеть примерно так:
Не забываем вставлять ссылку на библиотеку классов. Настраиваем установку службы.
Тестирование службы
Для финального тестирования возвращаемся к приложению Windows Form. Добавляем в него ссылку на созданную службу и создаем новый класс производный от класса описывающего созданную службу:
Создание этого класса позволяет нам вызывать методы службы из диалогового окна нашего приложения. Для примера — эмуляция старта службы:
После тестирования — можно разворачивать нашу службу.
Особенности служб Windows
Написав свою первую службу по работе с БД, столкнулся с загадочной ошибкой. При тестировании все работало замечательно, но периодически, при перезагрузке компьютера, служба не стартовала. Оказалось, что если сервер БД не успевал запуститься к моменту старта моей службы — возникала ошибка. Поэтому, когда пишите службу, необходимо понимать, какие приложения вы используете и будут ли они доступны в момент запуска службы
Читайте также: