Кто-нибудь знает какие-либо проблемы с использованием WCF для предоставления интерфейса SOAP для клиентов, отличных от .NET?

StackOverflow https://stackoverflow.com/questions/109083

Вопрос

Кто-нибудь знает какие-либо проблемы с использованием WCF для предоставления интерфейса SOAP для клиентов, отличных от .NET?Например, несовместимость с другими библиотеками SOAP?

Это сделано для того, чтобы интерфейс SOAP мог быть доступен третьим лицам для интеграции с нашим программным обеспечением.

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

Решение

Некоторые из проблемных областей, с которыми я столкнулся при работе с WCF:

  • Он генерирует WSDL, который разделен на несколько URL -адресов.То есть одна часть схемы находится в одном URL, другой находится в другом URL и т. Д.«Основной» URL WSDL (тот, что с справедливым »? WSDL» после названия службы) ссылается на другие через xsd:importэлементы.Многие клиенты SOAP (например, Delphi до версии .NET) испытывают огромные трудности с этой идиомой.Таким образом, вам действительно придется «сгладить» свой WSDL, чтобы добиться совместимости на практике.Дано одно решение здесь.
  • WCF не генерирует пространства имен XML так же, как, скажем, веб -сервисы ASMX.WCF имеет тенденцию размещать любой контракт на услуги или данные в пространство имен по своему выбору.Опять же, у некоторых клиентов SOAP возникают с этим трудности.Вы можете повысить уровень совместимости, добавив явное пространство имен к атрибутам ServiceContract и DataContract.
  • Многие клиенты SOAP не будут справляться с недостатками, как клиенты WCF.Например, код генерации прокси не будет создавать объекты на стороне клиента для ошибок, объявленных в WSDL.Конечно, неисправности все еще будут переданы клиенту, но тогда клиент должен сделать больше работы, чтобы выяснить, какая это вина.

Другие советы

версии стека стандартов WS-* также могут быть проблемой совместимости — например, версия WS-Addressing (2003), поддерживаемая некоторыми реализациями Java, например, Oracle BPEL не поддерживается WCF, который поддерживает более поздние версии проекта и 1.0, но не версию 1.0. ранее 2003 года один

В целом все работает нормально.Очевидно, это будет зависеть от используемого вами клиента — не все правильно реализуют SOAP.

P.S.Не могли бы вы перефразировать свой вопрос, если надеетесь на более конкретный ответ?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top