WCF с .NET 2.0 - PullRequest
       49

WCF с .NET 2.0

2 голосов
/ 21 августа 2009

Нам нужно реализовать службу WCF на машине, которая может работать только на .NET 2.0.

Аппарат представляет собой POS-терминал Windows XPe, и мы не нашли способ установить .NET 3.0. Мы не можем отформатировать его с новым образом XPe, потому что есть проприетарное приложение POS и установленные драйверы.

Есть ли способ реализовать службу WCF в .NET 2.0? Мы можем использовать стандартный XmlSerializer для сообщений, как .NET CF , но .NET CF не поддерживает сервер ...

Альтернативное решение - каким-то образом установить .NET 3.0. Программа установки жалуется на то, что пакет обновления 2 (SP2) для Windows XP не установлен, а Центр обновления Windows не работает на XPe.

Есть идеи?

ОБНОВЛЕНИЕ: Мы также хотели бы использовать веб-службы SOAP , но на нашей целевой платформе не установлена ​​ IIS . Кто-нибудь знает хороший (производственное качество) способ размещения веб-службы .NET 2.0 без IIS?

РЕШЕНИЕ: Мы используем Cassini с веб-сервисами .NET 2.0, как указано в помеченном ответе. Это, кажется, работает хорошо до сих пор. Спасибо за помощь.

Ответы [ 4 ]

5 голосов
/ 21 августа 2009

Похоже, вы исчерпали большинство возможностей. Есть ли какая-то причина, по которой вам нужно использовать WCF вместо простых веб-служб SOAP, которые поддерживает .NET 2.0 из коробки? Хотя я понимаю, что разочаровывать использование более старой технологии, я подозреваю, что у вас будет меньше проблем, если вы пойдете по относительно общепринятому пути, чем каким-то образом объединить реализацию WCF в .NET 2.0.

(Я бы настоятельно рекомендовал против , пытаясь использовать сборки .NET 3.0 в .NET 2.0. Это может привести к нарушению лицензии - вам придется проверить - но это также может привести к поломкам это было бы очень трудно отладить. В конце концов, кто знает точно , что делает установщик .NET 3.0? Вы хотите отследить каждый ключ реестра, который он пишет? Вы можете получить покончим с этим, но я думаю, что это плохая идея.)

2 голосов
/ 21 августа 2009

Я могу представить две возможности:

  1. Попробуйте одну из систем, которая свяжет множество dll, используемых вашим приложением, в один exe. Один из этих инструментов описан здесь: http://www.remotesoft.com/linker/linker_faq.html
  2. .NET 3.0 - это, в основном, несколько новых библиотек (WPF, WCF и WF), добавленных в .NET 2.0. Вероятно, вы можете просто скопировать соответствующие библиотеки вместе с вашим приложением. (Некоторые люди думают, что это опасная идея, но вы не узнаете, пока не попробуете.)
1 голос
/ 21 августа 2009

Не можете ли вы поставить "Прокси" между? Таким образом, ваш POS взаимодействует с прокси-сервером с использованием SOAP / ASMX, а затем прокси-сервер взаимодействует со службой WCF.

Согласен, попытка "взломать" DLL-библиотеки .net 3.0 в системе .net 2.0 звучит как боль.

0 голосов
/ 21 августа 2009

Ответ - нет. Вы не можете установить или каким-либо образом использовать WCF в системе 2.0

Ваши варианты:

  • WCF создан для работы со всеми стандартами WS- *. Вы можете использовать Web Services Enhancements (WSE) 3.0 или написать собственный код, используя удаленные классы .net.
  • Вы можете посмотреть на Mono Olive. Предполагается, что репликация с открытым исходным кодом WCF.
...