Использование оркестровки Biztalk в качестве веб-сервиса - PullRequest
0 голосов
/ 13 февраля 2009

Я опубликовал оркестровку в Biztalk как веб-сервис. Кто-нибудь знает, как я могу использовать сериализацию XML или что-то еще, чтобы загрузить XML из файла и «преобразовать» его в тип сообщения, который ожидает веб-служба? Как люди обычно используют этот веб-сервис? Я стараюсь избегать использования нетипизированных сообщений, так как я использую и XML, и плоский файл, и прочитал, что это может означать проблемы.

Ответы [ 2 ]

0 голосов
/ 22 февраля 2010

Ваш вопрос немного сбивает с толку. Вы начали с того, что сказали, что опубликовали оркестровку как веб-сервис, но подняли вопрос о ее использовании.

Если вы говорите об опубликованном веб-сервисе: Веб-служба, созданная мастером веб-службы BizTalk, не отличается от веб-службы, которую вы написали бы в .NET. В зависимости от типа сообщения, которого вы ожидаете от оркестровки, и от того, как вы структурировали операцию в мастере. Мастер автоматически сгенерировал бы для вас веб-сервис с WSDL и схемами (внутри будет несколько специфических битов BizTalk, но вам не нужно беспокоиться о реализации).

Вы, потребители (независимо от платформы), должны иметь возможность использовать этот веб-сервис без каких-либо серьезных проблем.

Если вы пытаетесь использовать веб-сервис из Orchestration Взгляните на эту статью http://msdn.microsoft.com/en-us/library/ms935219(BTS.10).aspx

0 голосов
/ 20 февраля 2009

Ну, я думаю, что в целом идея веб-сервисов заключается в том, что вы добавляете к ним веб-ссылку, которая генерирует набор прокси-классов, которые вы можете использовать для взаимодействия с веб-сервисом.

Обычно вам не нужно беспокоиться о сериализации XML-файлов в форматы веб-служб и из них, сгенерированный код сделает это за вас.

Однако если вы хотите работать с XML, вы можете использовать сериализацию .net для десериализации XML-файла в сгенерированный тип прокси (а также для сериализации любого получаемого вами ответа).

Вот базовый пример того, как десериализовать xml в экземпляр класса, затем вы можете передать этот экземпляр в метод в сгенерированном прокси.

            System.Xml.Serialization.XmlSerializer xser = new System.Xml.Serialization.XmlSerializer(typeof(<generated request type here>));
        xser.UnknownAttribute += new System.Xml.Serialization.XmlAttributeEventHandler(xser_UnknownAttribute);
        xser.UnknownElement += new System.Xml.Serialization.XmlElementEventHandler(xser_UnknownElement);
        xser.UnknownNode += new System.Xml.Serialization.XmlNodeEventHandler(xser_UnknownNode);
        xser.UnreferencedObject += new System.Xml.Serialization.UnreferencedObjectEventHandler(xser_UnreferencedObject);
        <generated request type here> request = (<generated request type here>)xser.Deserialize(<xml stream here>);

Я надеюсь, что это имеет смысл

...