Мне разработали сервер/клиентское приложение в Delphi 2006. Клиентом является Win32, и Сервер является веб-сервисом .net 1.1.
Мы находимся в процессе updateing этот проект, но он должен быть сделан в небольших шагах. Я запустил с сервера и создал проект WCF в VS2010 (C# .net 4.0). Первый шаг должен получить сервер, работающий в WCF, не изменяя клиент. Таким образом, я использовал шаблон фасада, создал подобный интерфейс к старому Веб-сервису Дельфи, добавила ссылка на старый .net 1.1 dll, и в моей реализации я просто назвал старый код .net 1.1.
Следующий шаг, обновляющий прокси-класс на клиенте. Это перестало работать. Средство импорта WSDL не поняло basicHttpBinding правильно, таким образом, прокси-класс, который был genereated, не мог заменить существующий прокси.
После небольшого количества исследования я нашел это сообщение в блоге.
http://kjellsj.blogspot.com/2006/12/how-to-expose-wcf-service-also-as-asmx.html
Это работало, WSDL ASMX не отличался, чем старый .net 1.1, таким образом, все появилось хорошо.
Но это не было. При тестировании нового сервиса я обнаружил, что все мои параметры были пробелом/пустым указателем на сервере. Я попробовал Скрипачом на клиенте, и параметры присутствует в XML, который отправляется на сервер.
Таким образом, я застреваю. Любые мысли о том, как решить это, очень ценились бы. Есть ли любой код, который мог межпокоиться для наблюдения затем сообщенный мне.
Я столкнулся с аналогичной проблемой с asmx веб-службы ... некоторые данные теряли свои значения. Если вы используете иерархические данные, вам может потребоваться объявить внутренние или унаследованные объекты с помощью атрибута XmlInclude. Например, если у вас есть класс User, который используется в вашей службе, и подкласс Customer, вам может потребоваться объявить класс Customer для службы, если он не используется непосредственно в веб-методе. Вы бы сделали это следующим образом.
[XmlInclude(typeof(Customer))]
public class Service : WebService
Конечно, это может не иметь к этому никакого отношения, так что удачи, если это так. :)