Что я должен знать при разработке совместимого веб-сервиса WCF? - PullRequest
6 голосов
/ 19 августа 2010

Я запускаю эту вики, чтобы собрать лучшие практики по созданию совместимых веб-сервисов (не клиентов) в WCF. Пожалуйста, поделитесь своим опытом, если вы знаете какую-либо функцию, которая обычно не совместима или не совместима с конкретной платформой.

Ответы [ 3 ]

4 голосов
/ 19 августа 2010

Довольно просто:

  • избегайте любых особенностей .NET, таких как исключения (превращайте их в ошибки SOAP)

  • не используйте привязки, начинающиеся с net, такие как netTcp, netNamedPipes, netMsmq и т. Д. - используйте wsHttpBinding для безопасных служб WS- * и basicHttpBinding для максимальной доступности / совместимости с самые странные клиентские платформы

  • не использовать NetDataContractSerializer

3 голосов
/ 19 августа 2010

Общая совместимость:

  • Взаимодействуют только транспортные каналы HTTP и HTTPS
  • Согласование учетных данных безопасности не является совместимым (gotiateServiceCredential в безопасности сообщений).Он использует протоколы TLSNego или SPNego, которые не всегда поддерживаются другими платформами.
  • Потоковая передача HTTP также может вызывать проблемы
  • Двоичное кодирование по каналу HTTP не совместимо
  • OleTransactionне совместимо
  • Используйте контекст безопасности службы с осторожностью (устанавливаем SecurityContext в безопасности сообщений).Он использует протокол разговора WS-Secure, который недоступен на некоторых платформах

Редактировать:

  • WSDualHttpBinding и CompositeDuplexBindingElement не совместимы
3 голосов
/ 19 августа 2010

Я рекомендую WCF REST, предоставляющий несколько форматов сериализации, определенно xml для начинающих.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...