Библиотека служб WCF и типы проектов библиотеки классов

Что делает сервисная библиотека WCF, чего не делает обычная библиотека классов?

Изменить: я опубликовал свой собственный ответ. Я что-то упустил? Являются ли они в основном просто библиотеками классов с добавлением нескольких классов шаблонов?


person kenwarner    schedule 12.03.2010    source источник
comment
@qntmfred: Являются ли они в основном просто библиотеками классов с добавлением нескольких классов шаблонов, все это в значительной степени просто проект библиотеки классов с добавленными классами шаблонов и другими настройками.   -  person John Saunders    schedule 12.03.2010


Ответы (4)


Я создал оба и сравнил. Вот что я нашел.

Библиотека служб WCF

  • добавляет ссылки на System.Runtime.Serialization и System.ServiceModel. не содержит ссылки на System.Data.DataSetExtensions, как это делает библиотека классов.
  • содержит примеры классов обслуживания IService1, CompositeType и Service1
  • добавляет app.config с конечными точками службы wsHttpBinding и mexHttpBinding.
  • добавляет /client:"WcfTestClient.exe" в качестве параметра командной строки отладки в свойствах проекта
  • добавляет вкладку WCF Options в свойствах проекта. Эта вкладка содержит параметр для запуска узла службы WCF при отладке другого проекта в том же решении.
  • включает параметр Sign the ClickOnce manifests на вкладке «Подписание» свойств проекта. эта опция отключена в библиотеке классов
person kenwarner    schedule 12.03.2010
comment
это прекрасно подводит итог тому, что делает сервисная библиотека WCF! - person marc_s; 13.03.2010

Он также запускает утилиту узла службы WCF по клавише F5. Переключатель /client, который вы заметили, передается узлу службы WCF, чтобы сообщить ему, какой клиент запускать. В этом случае предлагается запустить тестовый клиент WCF.

Это дает вам довольно хороший опыт работы с F5. Установите точки останова в своей службе, нажмите F5, используйте тестовый клиент для вызова операции службы, и ваши точки останова будут сработаны.

person John Saunders    schedule 12.03.2010
comment
@Marc: я слишком торопился. Проверьте редактирование, чтобы увидеть, к чему я клоню (переключатель /client передается на тестовый хост, чтобы он мог запускать клиент) - person John Saunders; 13.03.2010
comment
@Бенни: это просто <kbd>F5</kbd>. Только для эпизодического использования. - person John Saunders; 14.03.2010

Я тестировал в проекте VS 2010, используя библиотеку классов в качестве типа хостинга WCF, но не смог создать классы wsdl или прокси.

Проект WCF отличается от обычной библиотеки классов, потому что он добавляет много библиотек DLL в ссылки на решение/проект, а также добавляет шаблон (Service1.svc), который необходимо развернуть на сервере IIS и создать 2 вывода. файлы с помощью svcutil.exe.

person Mohammed Hoq    schedule 24.09.2010

Как описано здесь:

В первом элементе PropertyGroup выполните следующие действия:

Найдите элемент ProductVersion. Обновите версию продукта, чтобы она соответствовала следующему:

<ProductVersion>8.0.50727</ProductVersion>

Под элементом AssemblyName добавьте следующие элементы:

<ProjectTypeGuids>{3D9AD99F-2412-4246-B90B-4EAA41C64699};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

<StartArguments>/client:"WcfTestClient.exe"</StartArguments>

Прокрутите файл до конца и под элементом Import добавьте следующее расширение:

<ProjectExtensions>
    <VisualStudio>
      <FlavorProperties GUID="{3D9AD99F-2412-4246-B90B-4EAA41C64699}">
        <WcfProjectProperties>
          <AutoStart>True</AutoStart>
        </WcfProjectProperties>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
person Cătălin Rădoi    schedule 11.02.2014