Web サービスを公開する際の考慮事項
ここでは、Web サービスを公開する前に考慮が必要な情報について説明します。
スキーマおよび include 要素の公開
include 要素を含むスキーマを Web サービスとして発行できないシナリオがいくつかあります。 BizTalk Web サービス公開ウィザードを完了するときに、エラーが発生します。 これらの制限は以下のとおりです。
循環インクルード (インクルード されたスキーマにはインクルード スキーマへの include 要素があります)
未解決の schemaLocation 属性が原因でエラーが発生する
include 要素の制限の詳細については、 の「Include Element Binding Support」 https://go.microsoft.com/fwlink/?LinkId=62312を参照してください。
スキーマおよび import 要素の公開
BizTalk Web サービス公開ウィザードには、.NET Framework に付属する XSD.exe と同じ制限があります。 詳細については、 の「要素バインドのサポートのインポート」 https://go.microsoft.com/fwlink/?LinkId=62311を参照してください。
スキーマおよび redefine 要素の公開
BizTalk Web サービス公開ウィザードには、.NET Framework に付属する XSD.exe と同じ制限があります。 詳細については、 の「要素バインドのサポートを再定義する」 https://go.microsoft.com/fwlink/?LinkId=62313を参照してください。
minOccurs 属性または maxOccurs 属性の値を指定するスキーマの公開
特定の値を持つ minOccurs 属性または maxOccurs 属性を含むスキーマを発行する場合、公開された Web サービスによって公開されるスキーマでは、これらの値が異なる場合があります。 一般的な経験則として、minOccurs 属性はすべて 0 (minOccurs=0) に変換され、maxOccurs 属性は 1 または unbounded (maxOccurs=1 または maxOccurs=unbounded) に変換されます。
エンベロープ スキーマの公開
Web サービスとして公開するエンベロープ スキーマがある場合、生成される Web プロジェクトを手動で変更する必要があります。
エンベロープ スキーマ用に生成された Web プロジェクトを変更するには
<
myWebService
>.asmx.cs ファイルを開きます。ファイルを編集し、 に変更
bodyTypeAssemblyQualifiedName = <dll.name.version.>
しますbodyTypeAssemblyQualifiedName = null
。
Note
前の .dll ファイルが引き続き ASPNET ワーカー プロセス内にある場合、インターネット インフォメーション サービス (IIS) のリセットが必要になることがあります。
Web サービス属性および Web メソッド属性
BizTalk Web サービス公開ウィザードでは、ASP.NET で使用する Web サービス属性または Web メソッド属性をカスタマイズできません。 一部の属性は、ウィザードで提供される情報に基づいて自動的に設定されます。 ウィザードはそれ以外の属性を使用しません。
BizTalk Web サービス公開ウィザードによって生成された Web サービスの既存の属性を変更したり、新しい属性を追加したりすると、Web サービスが正常に機能しなくなることがあります。
Web サービスと Web メソッド属性の詳細については、.NET Framework SDK ドキュメントの WebServiceAttribute クラスと WebMethodAttribute クラスを参照してください。
Web メソッドの必要性
Web サービスには、少なくとも 1 つの Web メソッドが必要です。 Web メソッドが 1 つもないと、作成された操作をポートの種類に設定できません。 XLANG/s は、操作が設定されていないポートの種類をサポートしません。
DBCS 文字のサポート
Web サービスは、中国語/日本語/韓国語 (CJK) の漢字拡張 A 文字をサポートしません。
BizTalk Web サービス公開ウィザードを使用した Web サービスの再公開
BizTalk Web サービス公開ウィザードを使用して、公開された Web サービスを再公開できます。 [Webサービスプロジェクト] ページで、[Webサービスの上書き] オプションを選択できます。
ウィザードは、以前使用した設定を保存しません。 ウィザードを再実行するときに設定を変更すると、公開された Web サービスを使用する (呼び出す) Web クライアントは、動作に失敗する場合があります。 再公開された Web サービスを使用する (呼び出す) クライアントの Web 参照を更新する必要があります。
公開された Web サービスのクライアントがサーバー スクリプト タイムアウト エラーを受信しない
BizTalk Serverの Web サービス発行ウィザードで生成された Web サービスは、既定で 110 秒のスクリプト タイムアウト値で構成されます。 これは、.NET Framework の HttpServerUtility.ScriptTimeout プロパティ。 .NET Frameworkを使用する Web クライアントは、要求タイムアウト値が 100 秒の既定で構成されます。 これは、.NET Framework HttpWebRequest.Timeout プロパティの既定値です。
.NET Framework を使用する Web クライアントが、BizTalk Server Web サービス発行ウィザードで生成された Web サービスを呼び出している場合は、クライアント要求のタイムアウトが既定で最初に発生するため、クライアントがサーバー スクリプトのタイムアウト エラーを受信できない可能性があります。 この問題を解決するには、次のいずれかの操作を実行します。
クライアントの HttpWebRequest.Timeout プロパティの値を大きくして、クライアント要求のタイムアウトをサーバー スクリプトのタイムアウトより大きい値に増やします。
サーバー上の HttpServerUtility.ScriptTimeout プロパティの値を減らすことで、サーバー スクリプトのタイムアウトをクライアント要求タイムアウトより小さい値に減らします。