質問

Biztalk Orchestrationから消費する必要がある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; }
        }

送信ポートを作成して、プロバイダーレクエストメッセージを送信しようとすると、異なるエラーで失敗します。

BizTalkプロジェクトで定義されているのと同じスキーマを使用するWCFサービスを消費するための最良の方法は何ですか?

役に立ちましたか?

解決

あなたの最善の策は、サービスのインスタンスを実行してから、「生成されたアイテムを追加」 - >「Visual Studio内から「WCFサービスを消費」することです。

これにより、サービスメッセージXSDとポートタイプが生成され、やろうとしていることを行うための低摩擦の方法です。

他のヒント

非常に興味深い質問、他の人に起こるかもしれないシナリオ。

ここにいくつかの提案があります。

最も一般的なケース: あなたはサービスを消費する必要があり、それらのメッセージを使用したい - ヒューの提案「生成されたアイテムを追加...」を使用します...」

あまり一般的ではありません: サービスが使用するスキーマ(同じ) - ヒューの提案「生成アイテムの追加...」 - 複製のスキーマを削除するか、独自または作成されたスキーマを削除しました

それほど一般的ではありません: 同じスキーマを使用する2つのサービスを消費したい - Hughの提案を使用して「生成されたアイテムを追加...」 - 生成されたもののいずれかから複製するスキーマを削除します

私に起こったことはありませんでした: サービスが使用するスキーマはすでに作成されています(同じではなく、同じルート名と名前のスペース) - 何もすることはありません。これは機能しません(箱から出して)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top