使用Biztalk业务流程作为Web服务

时间:2009-02-13 08:38:55

标签: web-services biztalk orchestration

我在Biztalk中发布了一个编排作为Web服务。有谁知道如何使用XML序列化或从文件加载XML并将其“转换”为webservice期望的消息类型?人们通常如何使用这个网络服务?我尝试避免使用无类型消息,因为我同时使用XML和flatfile,并且已经读过它可能意味着麻烦。

2 个答案:

答案 0 :(得分:0)

嗯,我猜通常Web服务的想法是你添加一个Web引用,这将生成一组可用于与Web服务交互的代理类。

您通常不必担心将xml文件序列化为Web服务格式,生成的代码将为您完成。

但是,如果您希望使用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>);

我希望这是有道理的

答案 1 :(得分:0)

你的问题有点令人困惑。您开始说您将业务流程发布为Web服务,但提出了有关使用它的问题。

如果您正在谈论已发布的网络服务: BizTalk Web服务向导生成的Web服务与您在.NET中编写的Web服务没有区别。基于业务流程期望的消息类型以及您在向导中构建操作的方式。向导会自动为您生成一个带有WSDL和模式的Web服务(里面会有一些BizTalk特定的位,但您不必担心实现)。

您的消费者(独立于平台)应该能够使用该Web服务而不会出现任何重大问题。

如果您尝试从Orchestration使用Web服务 看一下这篇论文http://msdn.microsoft.com/en-us/library/ms935219(BTS.10).aspx