WCF с.NET 2.0

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

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

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

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

Есть идеи?

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

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

4 ответа

Решение

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

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

Я могу думать о двух возможностях:

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

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

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

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

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

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