Вопрос

Нам нужно реализовать службу 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.

Есть идеи?

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

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

Это было полезно?

Решение

Похоже, вы исчерпали большую часть возможностей.Есть ли какая-либо причина, по которой вам необходимо использовать 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 представлял собой в основном несколько новых DLL (WPF, WCF и WF), добавленных в .NET 2.0.Вероятно, вам удастся просто скопировать соответствующие библиотеки DLL вместе с вашим приложением.(Некоторые люди думают, что это опасная идея, но вы этого не узнаете, пока не попробуете.)

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

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

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

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

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