次の方法で共有


Web サービスの使用の計画

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

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

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

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

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

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

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

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

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

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

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

    Web 参照の追加を使用して BizTalk プロジェクトに Web 参照を追加すると、BizTalk Server は、各 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 は、BizTalk Server Web サービスではない Web サービスによって公開される 1 次元およびジャグ配列を使用できます。 Web サービス配列を使用する方法の詳細については、「Web サービス配列を使用する方法 (https://go.microsoft.com/fwlink/?LinkId=155766)」を参照してください。

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

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

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

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

    System.Xml.Element は、メッセージ パーツ型にするには Xml Seralizeable である必要があります。

    Xml シリアル化可能ではありませんが、 XmlDocumentDataSet のデータ型がサポートされています。

  • 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 送信ポートをプログラムで構成する

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

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

    MethodName プロパティの詳細については、「使用される Web サービス (https://go.microsoft.com/fwlink/?LinkID=155768) の URI を動的に設定する方法」を参照してください。

  • プロパティ ルール

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

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

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

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

    • この値は、メッセージが静的または動的な送信ポートに送信されるかどうかに関係なく上書きされません。 つまり、送信パイプライン コンポーネントは、設定された場所に関係なく、構成プロパティを上書きします。

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

    • SOAP 送信アダプターの構成プロパティの詳細については、「使用される Web サービス (https://go.microsoft.com/fwlink/?LinkID=155768) の URI を動的に設定する方法」を参照してください。

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

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

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

    TypedDataSets を Web メソッドのパラメーターとして使用するために必要な操作を次に示します。

    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 参照を追加すると、BizTalk Server は、各 Web メソッドを呼び出すために必要なスキーマ型をスキーマに変換します。 BizTalk Server は、これらのスキーマを Reference.xsd に追加します。 Web 参照の追加で BizTalk スキーマが正しく生成されるようにするには、Web サービスが次のガイドラインに準拠している必要があります。

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

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

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

    • Web メソッドでは、SoapDocumentMethodAttributeRequestNamespace プロパティと ResponseNamespace プロパティを使用しないでください。

    • Web サービスは、Web サービス相互運用性 (WSI) 基本プロファイル バージョン 1.1 に準拠している必要があります。

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

    WSDL ファイルの Web 参照を import 要素と共に追加すると、Web 参照の追加が失敗します。

こちらもご覧ください

BizTalk Server 層の計画