次の方法で共有


Web サービスの使用の計画

Web サービスの計画は、Web サービスの発行計画と Web サービスの使用計画という 2 つのカテゴリに分けることができます。 このトピックでは、Web サービスの使用に関する考慮事項について説明します。 Web サービスの発行の詳細については、「Web サービスの発行計画1」を参照してください。

プランを作成するときは、次の点に注意してください。

  • パラメーター名に 2 つのアンダースコア文字を使用する

    Web メソッドのパラメータ名を "__" (2 つのアンダースコア文字) で始めることはできません。 2 つのアンダースコア文字で始まる名前を使用すると、XLANG/s でサポートされない (使用できない) Web メッセージ部分が作成される場合があります。

  • Any 要素と anyAttribute 属性は、Web メソッドではサポートされていません

    Web メソッドのスキーマでは、 任意 の要素または anyAttribute 属性を使用できません。

  • XLANG/s キーワードの使用

    Web サービス名または Web メソッド名に XLANG/s のキーワードを使用することはできません。 Web サービス名または Web メソッド名で XLANG/s のキーワードを使用すると、Web サービスを追加するときにコンパイル エラーが発生します。 XLANG/s 言語の予約語の一覧については、 XLANG/s 予約語 (https://go.microsoft.com/fwlink/?LinkId=155765) を参照してください。

  • パラメーター型に必要な XLANG/秒のサポート

    サポートされている XLANG/s 以外の Web メソッド パラメーター型を使用すると、コンパイル エラーが発生します。 たとえば、BizTalk Server では 1 次元配列のスキーマの種類で構成されるパラメータはサポートされていません。 さらに、BizTalk Serverでは多次元配列はサポートされていません。 XLANG/s 言語がBizTalk Serverで予約する単語の一覧については、「XLANG/s 予約語 (https://go.microsoft.com/fwlink/?LinkId=155765)」を参照してください。

  • C# キーワードまたは識別子を含む Web 参照を追加することによって発生するコンパイル エラーの回避

    [Web 参照の追加]を使用して BizTalk プロジェクトに Web 参照を追加すると、各 Web メソッドを呼び出すために必要なスキーマ型がスキーマに変換BizTalk Server。 変換後のスキーマは Reference.xsd に追加されます。 スキーマに C# のキーワードと同じ要素名や C# の識別子として有効でない要素名が含まれる場合は、ランタイム エラーが発生することがあります。 ランタイム エラーを回避するには、使用する Web サービスに C# のキーワードと同じ要素名や C# の識別子として無効な要素名を含めないようにしてください。

  • 複数のサービス/ポートの種類の定義はサポートされていません

    BizTalk Server では、単一のサービスおよびポートの種類の定義を含む Web サービス ファイルを追加することができます。 複数のサービスまたはポートの種類の定義を含む WSDL ファイルを追加すると、次のエラーが発生することがあります。

    Could not generate BizTalk files. Object reference not set to an instance of an object.

  • Web サービスによって公開される配列の使用のサポート

    BizTalk Serverは、Web サービスにBizTalk Serverされていない Web サービスによって公開される 1 次元配列とジャグ配列を使用できます。 Web サービス配列を使用する方法の詳細については、「How to Consume Web Service Arrays (https://go.microsoft.com/fwlink/?LinkId=155766)」を参照してください。

    Note

    多次元配列の構文はサポートされていません。 たとえば、 MyArray[1,5]

    Note

    BizTalk Serverでは、Web サービスによって公開される DataSet オブジェクトの配列の使用はサポートされていません。 XLANG/s サブサービスは.NET DataSet クラスをネイティブにサポートしますが、.NET DataSet オブジェクトの配列を公開する Web サービスへの Web 参照を含む BizTalk プロジェクトを作成すると、プロジェクトをコンパイルしようとするとエラーが発生します。

  • Web メソッド パラメーターは Xml シリアル化可能である必要があります

    使用する Web サービスのパラメータはすべて、XML シリアル化可能である必要があります。 XML シリアル化可能でないパラメータを含む Web メソッドを追加すると、次のエラー メッセージが表示されることがあります。

    "System.Xml.Element はメッセージ部分の型になるように、XML にシリアル化可能である必要があります。"

    Note

    Xml Serializable ではなく、XmlDocument および DataSet のデータ型がサポートされています。

  • Messaging-Only Web サービスの使用

    メッセージング専用 Web サービスを使用する場合、メッセージ本文のすべてのBizTalk Serverパーツ名が Web メソッド パラメーター名と一致している必要があります。 たとえば、Web サービスのシグネチャが の場合、パーツ名は WebMethod(MyType1 type1, MyType2 type2)type1 と type2 である必要があります。次のランタイム エラーが発生する可能性があります。

    Failed to retrieve the message part for parameter %1

    詳細については、「 Messaging-Only シナリオで Web サービスを使用する方法 (https://go.microsoft.com/fwlink/?LinkId=155767)」を参照してください。

  • プログラムによる SOAP 送信ポートの構成

    プログラムを使って、構成プロパティをメッセージ コンテキストに設定できます。 送信ポートが静的か動的かに関係なく、オーケストレーションまたはカスタム パイプライン コンポーネントでこれらのプロパティを設定できます。

    Note

    静的 SOAP 送信ポートの MethodName プロパティをプログラムで構成するには、BizTalk Server管理コンソールの [SOAP トランスポートのプロパティ] ダイアログ ボックスの [Web サービス] タブで、[メソッド名] を [後で指定] に設定する必要があります。

    MethodName プロパティの詳細については、「How to Dynamically Set the URI of a Consumed Web Service (https://go.microsoft.com/fwlink/?LinkID=155768)」を参照してください。

  • プロパティのルール

    構成プロパティがオーケストレーション、または受信パイプラインのカスタム パイプライン コンポーネントで設定されている場合は、次のルールが適用されます。

    • メッセージが静的送信ポートに送信された場合、プロパティの値は、その送信ポート用に構成された値で上書きされます。

    • メッセージが動的送信ポートに送信された場合、プロパティ値は上書きされません。

      構成プロパティが送信パイプラインのカスタム パイプライン コンポーネントで設定されている場合は、次のルールが適用されます。

    • メッセージを送信する送信ポートが静的か動的かにかかわらず、プロパティ値は上書きされません。 つまり、送信パイプライン コンポーネントは、設定されているかどうかにかかわらず、構成プロパティを上書きします。

    • カスタム パイプライン コンポーネントの詳細については、「カスタム パイプライン コンポーネントの開発 (https://go.microsoft.com/fwlink/?LinkId=155769)」を参照してください。

    • SOAP 送信アダプターの構成プロパティの詳細については、「 How to Dynamically Set the URI of a Consumed Web Service (https://go.microsoft.com/fwlink/?LinkID=155768)」を参照してください。

  • マルチルート スキーマを含む使用済み Web サービスに Web 参照を追加すると、コンパイル エラーが発生します

    発行された BizTalk オーケストレーションから派生した Web サービスの Web 参照をプロジェクトに追加し、オーケストレーションに複数のルートを持つスキーマが含まれている場合、プロジェクトのコンパイル時にエラーが発生します。 公開済みの BizTalk オーケストレーションから派生した Web 参照をプロジェクトに追加する場合は、オーケストレーションに複数ルートのスキーマが含まれていないことを確認してください。

  • TypedDataSets を Web メソッドのパラメーターとして使用する

    Web メソッドのパラメータとして TypedDataSets を使用するには、次の手順を実行します。

    1. Web 参照を C# プロジェクトに追加し、プロキシを生成します。

    2. SOAP 送信ポートを作成し、送信ポートにプロキシを指定して、メソッドを選択します。

    3. オーケストレーションで、遅延バインディング ポートとメッセージの種類を定義します。 プロパティの昇格や識別フィールド アクセスが必要ないほとんどの場合、型は XMLDocument として定義できます。 この種類に対応したパススルー パイプラインを選択してください。

    4. BizTalk Server管理コンソールの SOAP 送信ポートの [SOAP トランスポートのプロパティ] ダイアログ ボックスの [Web サービス] タブで、作成したプロキシを使用するように指定します。 アセンブリ、型、メソッドも指定する必要があります。

  • Generic-Based パラメーターが必要な Web メソッドを含む使用済み Web サービスに Web 参照を追加すると、コンパイル エラーが発生する

    Null 許容パラメーターなどのジェネリック ベースのパラメーターを必要とする Web メソッドを含む Web サービスの Web 参照をプロジェクトに追加すると、プロジェクトのコンパイル時にエラーが発生します。 これはサポートされていません。 ジェネリック クラスは XLANG/s から明示的な特殊化によって呼び出す必要があります。

  • Web 参照の追加を使用した BizTalk スキーマの生成

    [Web 参照の追加]を使用して BizTalk プロジェクトに Web 参照を追加すると、各 Web メソッドを呼び出すために必要なスキーマ型がスキーマに変換BizTalk Server。 変換後のスキーマは Reference.xsd に追加されます。 Web 参照の追加で BizTalk スキーマが正しく生成されるようにするには、Web サービスが次のガイドラインに準拠している必要があります。

    • Web メソッドには、 SoapRpcMethodAttribute ではなく SoapDocumentMethodAttribute が必要です。

    • Web サービスとメソッドでは、[SoapDocumentMethod(Use=SoapBindingUse.Literal)] など、エンコードではなくリテラル バインドを使用する必要があります。

    • Web メソッドのパラメーターと戻り値の型は、ネイティブ XSD 型と XmlNode 型でない限り、有効な Namespace プロパティを持つ XmlRootAttribute を持つ必要があります。

    • Web メソッドでは、SoapDocumentMethodAttributeRequestNamespace プロパティと ResponseNamespace プロパティを使用することはできません。

    • Web サービスは、Web Services Interoperability (WSI) Basic Profile バージョン 1.1 に準拠する。

  • Web 参照の追加は、Web サービス記述言語 (WSDL) インポート要素をサポートしていません

    インポート要素を使用して WSDL ファイルの Web 参照を追加すると、[Web 参照の追加] は失敗します。

参照

BizTalk Server 層の計画