2008-08-13 3 views
0

У меня есть служба WCF, которую я должен ссылаться из проекта .net 2.0.Проблема обратной совместимости WCF

Я попытался ссылаться на него, используя метод «add web reference», но он перепутал параметры.

Например, у меня есть метод в службе, который ожидает передачи char[], но когда я добавляю веб-ссылку, метод ожидает int[].

Итак, я попытался установить svcutil, и это сработало ... вроде.
Я мог только получить класс обслуживания для компиляции, добавив кучу .net 3.0 ссылки на мои .net 2.0 проект. Это не очень понравилось архитектору, поэтому я должен был это сделать (и, возможно, и для лучшего).

Так мне было интересно, если кто имеет какие-либо указатели или ресурсы о том, как я могу настроить .net 2.0 проект для ссылки на службу WCF .

ответ

2

Один из тех случаев, когда вам нужно отредактировать WSDL. Для начала полезного инструмента

http://codeplex.com/storm

0

Спасибо за ресурс. Это, безусловно, помогло мне проверить веб-сервис, но это не помогло использовать службу WCF в моем приложении .net 2.0.

То, что я в конечном итоге закончил, возвращалось к архитекторам и объясняло, что 3.0 dll, которые мне нужны для ссылки, скомпилированы для запуска в среде CLR 2.0. Нам не обязательно нравится решение, но мы собираемся пойти с ним на данный момент, поскольку, похоже, не существует слишком много жизнеспособных альтернатив

1

Какая привязка вы используете - я думаю, если вы придерживаетесь basicHttp вы должны иметь возможность генерировать прокси-сервер, используя подход «добавить веб-ссылку» из проекта .net 2?

Возможно, если вы разместите определение договора/интерфейса, это может помочь?

Приветствия Ричард

0

Я использовал basicHttp связывания, но проблема была на самом деле с XMLSerializer. Он не правильно распознает wsdl, сгенерированный WCF (даже с привязками basicHttp), для чего-либо, кроме базовых типов значений.

Мы обошли это, добавив ссылку на 3.0 dll и используя сериализатор datacontract.