Создавать клиент WCF программно

У меня есть веб-сайт с поддержкой WCF Silverlight. Служба работает нормально, и я могу без проблем просматривать страницу WSDL в браузере.

Теперь я пытаюсь создать клиент в DLL. Мне нужно создать весь клиент программно, потому что он вызывается в DLL, который по какой-либо причине (по дизайну?) Не будет читать раздел ServiceModel из собственного файла конфигурации.

Итак, вот мой код:

Dim endp As EndpointAddress = New EndpointAddress("http://www.mydomain.com/licensing/lic.svc")
Dim bind As WSHttpBinding = New WSHttpBinding()
Dim svc = New lnt.licClient(bind, endp)
Dim rsp = svc.CheckIt(key)

Но когда я вызываю метод svc.CheckIt, я получаю следующую ошибку:

Content Type application/soap+xml; charset=utf-8 was not supported by service http://www.mydomain.com/licensing/lic.svc. 
The client and service bindings may be mismatched.
{"The remote server returned an error: (415) Cannot process the message because the content type 'application/soap+xml; charset=utf-8' was not the expected type 'application/soap+msbin1'.."}

Как правильно создать мой клиент, чтобы они были правильно "сопоставлены"?
Спасибо заранее.

Ответ 1

Ах, нашел. Раздел ServiceModel на веб-сайте web.config был установлен в customBinding. Изменил его так, чтобы он соответствовал тому, что посылал клиент, и теперь он прекрасно работает.

Ответ 2

Я столкнулся с этой проблемой. Более конкретно, мое исправление заключалось в обновлении типа привязок, которые я использовал. Я использовал wsHttpBindings вместо basicHttpBindings. Это вызвало ошибки, поскольку wsHttpBindings использует SOAP 1.2, а basicHttpBindings использует SOAP 1.1, а сервис, который я использовал, SOAP 1.1

Ответ 3

У меня была такая же ошибка. Сервис компилировался, клиентская реклама тоже. Ссылка службы в заявке клиента была успешно обновлена. Я попытался удалить и добавить ссылку еще раз, и это не помогло. Проблема заключалась в удаленном интерфейсе в веб-службе.