Инспекторы сообщений WCF - PullRequest
3 голосов
/ 09 мая 2011

у нас есть устаревшее промежуточное приложение, и мы хотим реализовать для него WCF Adapter.допустим, на данный момент мы будем использовать только WCF-сервис.промежуточное программное обеспечение способно обрабатывать сообщения XML.мы хотели бы получить сообщение xml из промежуточного программного обеспечения, переслать его клиенту WCF.после получения ответа мы хотели бы ответить промежуточному программному обеспечению с ответом xml.

Ниже приведены некоторые из наших проблем, которые мы хотели бы рассмотреть.

  1. мы должны быть в состояниидля отправки необработанного xml вместо объектного вызова WCF
  2. после получения xml после всех слоев WCF (это важно, поскольку проверки самого xml уже должны быть выполнены в соответствии с контрактом), мы будем пересылать егоПромежуточное программное обеспечение.
  3. наше промежуточное программное обеспечение реализует классические веб-сервисы, но существует ряд проблем с сериализатором данных.Одним из них являются ссылки на объекты.как мы уже видим, ссылка на объект сохраняется с помощью атрибута id в элементе xml.как мы можем это уловить.Есть ли что-то еще, что мы можем рассмотреть для сериализатора контрактов данных.
  4. Промежуточное программное обеспечение касается самого исходного сообщения.мы хотели бы, чтобы другие свойства, связанные с сообщениями, такие как SOAP, WS-Security и т. д., обрабатывались самим прокси-сервером WCF.
  5. Кто-нибудь знает, как работает адаптер Biztalk для WCF

любая обратная связь будетбыть оцененным.

1 Ответ

1 голос
/ 11 мая 2011

1) То, что вы ищете, называется POX (Plain Old XML).WCF поддерживает это с помощью WebHttpBinding. Вот хорошая отправная точка.

Строго говоря, это не «сырой XML», потому что WCF решает, что отправлять, но в результате получается простой XML-документ, а не сообщение SOAP.Если вы не можете заставить WCF отправлять то, что вы хотите, даже с чем-то вроде POX, тогда может иметь смысл пропустить WCF для этого компонента и просто открыть сокет для уровня промежуточного программного обеспечения и напрямую отправить XML.В этом случае вы действительно можете отправить именно то, что ожидает устаревшее промежуточное программное обеспечение.WCF все еще может обрабатывать клиентские соединения.

2) Если у вас есть служба WCF, обращенная к клиенту, WCF проанализирует сообщение клиента и выдаст вам какой-то объект в вашем коде (в зависимости от контракта на обслуживание).).В этот момент ваш код службы WCF должен либо использовать другое соединение WCF для связи с промежуточным программным обеспечением, либо, как я уже упоминал, открыть сокет и отправить необходимый запрос.Но перед тем, как запустить ваш сервисный метод, вы удалите "вещи" из WCF.

4) Это не должно быть проблемой.WCF и ваш код справятся с этим перед отправкой чего-либо в промежуточное программное обеспечение.

Надеюсь, это немного поможет.:)

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