簡體   English   中英

如何從BizTalk 2010使用WCF服務

[英]How to consume WCF service from BizTalk 2010

我有一個需要從BizTalk編排中使用的Web服務。 我已經定義了在BizTalk中使用的消息模式,它們看起來像

    <?xml version="1.0" encoding="utf-16"?>
    <xs:schema 
        xmlns:mstns="http://tempuri.org/XMLSchema.xsd" 
        xmlns="http://www.myapp.com/schemas/IntegrationApplication-instance" 
        xmlns:b="http://schemas.microsoft.com/BizTalk/2003" 
        xmlns:ns0="https://DTIB.PropertySchema" 
        elementFormDefault="qualified" 
        targetNamespace="http://www.myapp.com/schemas/IntegrationApplication-instance" 
        xmlns:xs="http://www.w3.org/2001/XMLSchema">
      <xs:include schemaLocation=".\CommonTypes.xsd" />
      <xs:element name="ProviderRequest">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Header" type="HeaderType" />
            <xs:element name="Parameters" type="ParametersType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:schema>

在WCF服務中,我定義了如下方法

public ProviderResponse Provide(ProviderRequest providerRequest) {...}

ProviderRequest的定義如下

        [DataContract(Namespace = "http://www.myapp.com/schemas/IntegrationApplication-instance")]
        public class ProviderRequest
        {
            [DataMember]
            public Header Header { get; set; }

            [DataMember]
            public Parameter[] Parameters { get; set; }
        }

當我創建發送端口並嘗試發送ProviderRequest消息時,它會失敗,並顯示不同的錯誤。

使用與BizTalk項目中定義的模式相同的架構的WCF服務的最佳方法是什么?

最好的選擇是先運行服務實例,然后在Visual Studio中運行“添加生成的項目”->“使用WCF服務”。

這將生成您的服務消息XSD和端口類型,並且是您嘗試做的一種低摩擦的方法。

這是一個非常有趣的問題,可能會發生在其他人身上。

這里有一些建議。

最常見的情況:您需要使用一項服務,並希望使用這些消息-請使用休的建議“添加已生成的項目...”。

不太常見的情況:您已經創建了一個服務也要使用的架構(相同)-使用hugh的建議“添加生成的項目...”-刪除重復的架構,無論是您自己的架構還是從創建的架構中刪除

不太常見的情況:您想使用兩個使用相同架構的服務-使用休的建議“添加生成的項目...”-從生成的其中之一中刪除重復的架構

從未發生過我的案例:您已經創建了服務也使用的架構(不相同,但根名稱和名稱空間相同)-無需執行任何操作,這將不起作用(開箱即用)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM