方法 : XML Web サービスに対する探索を有効にする
このトピックの対象は、レガシ テクノロジに特定されています。XML Web サービスと XML Web サービス クライアントは以下を使用して作成してください。 Windows Communication Foundation.
Web サービスは、次の方法でクライアントに発行できます。
.disco のファイル名拡張子を持つ XML 探索ファイルを使用する。
.vsdisco 拡張子を指定する URL を使用する。
Web サービスを ?DISCO クエリ文字列と共に使用する。
このトピックでは、これらの探索機構のうち 1 つ目と 2 つ目の設定方法を説明します。ここでは、?DISCO クエリ文字列を使用して Web サービスの要求を有効化する方法については説明しません。この方法は既に自動的に使用可能なっています。これらのオプションの詳細については、「XML Web サービスの公開および配置」を参照してください。
Web サービスの静的探索ドキュメントを発行する
任意のエディターで XML ドキュメントを作成し、?xml version="1.0" ? 要素を 1 行目に追加します。
XML ドキュメント内で、次のように discovery 要素を追加します。
<disco:discovery xmlns:disco="https://schemas.xmlsoap.org/disco/"> </disco:discovery>
discovery 要素内に、サービスの説明、XSD スキーマ、または他の探索ドキュメントへの参照を追加します。
パブリックとして公開する必要がある数だけ参照を追加できます。サービスの説明の参照を探索ドキュメントで指定するには、
https://schemas.xmlsoap.org/disco/scl/
XML 名前空間に contractRef 要素を追加します。同様に、他の探索ドキュメントおよび XSD スキーマへの参照を指定するには、discoveryRef XML 要素と schemaRef XML 要素をそれぞれ追加します。XSD スキーマの参照では、XML 名前空間https://schemas.xmlsoap.org/disco/schema
を指定する必要があります。参照される 3 種類のドキュメントすべてについて、ref 属性を使用してドキュメントの場所を指定します。探索ドキュメント、サービスの説明、および XSD スキーマへの参照を含むコード例を次に示します。<?xml version="1.0"?> <discovery xmlns="https://schemas.xmlsoap.org/disco/"> <discoveryRef ref="/Folder/Default.disco"/> <contractRef ref="http://MyWebServer/UserName.asmx?WSDL" docRef="Service.htm" xmlns="https://schemas.xmlsoap.org/disco/scl/"/> <schemaRef ref="Schema.xsd" xmlns="https://schemas.xmlsoap.org/disco/schema/"/> </discovery>
参照は、discoveryRef 要素に示されているように探索ドキュメントが存在するディレクトリを基準にするか、contractRef 要素に示されているように URI を基準にすることができます。
探索ドキュメントは、Web サーバー上の仮想ディレクトリにコピーして Web サーバーに配置します。
オプションで、対象ユーザーがドキュメントを指定しなくても IIS アプリケーションを指定するだけで URL に移動できるようにする場合は、IIS アプリケーションの既定のページへのリンクを追加できます。この方法は、対象ユーザーが探索ドキュメントの名前を知らなくてもよいので便利です。ユーザーは探索プロセス中に次のような URL を指定できます。
http://MyWebServer/MyWebApplication
Web アプリケーションの既定のページが HTML ページである場合、Web サーバーの既定の Web ページの head 要素に探索ドキュメントへのリンクを追加します。たとえば、探索ドキュメントに
MyWebService.disco
という名前を付けて、既定のページと同じディレクトリ内に配置する場合は、既定の Web ページに次の要素を配置する必要があります。<HEAD> <link type='text/xml' rel='alternate' href='MyWebService.disco'/> </HEAD>
Web アプリケーションの既定のページが XML ドキュメントである場合は、Web サーバーの既定の Web ページの head 要素に探索ドキュメントへのリンクを追加します。たとえば、探索ドキュメントに
MyWebService.disco
という名前を付けて、既定のページと同じディレクトリ内に配置する場合は、既定の Web ページの先頭に次の要素を配置する必要があります。<?xml-stylesheet type="text/xml" alternate="yes" href="MyWebService.disco" ?>
Web サービスの動的な探索を有効にするには
Web サーバーで動的な探索を有効にするには、machine.config ファイルを変更して次の <add> 要素を追加します。次の例の改行は無視してください。type 属性は 1 行で記述する必要があります。
<configuration> <system.web> <httpHandlers> <add verb="*" path="*.vsdisco" type="System.Web.Services.Discovery.DiscoveryRequestHandler, System.Web.Services, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false"/> </httpHandlers> </system.web> </configuration>
注 : 動的な探索が有効になると、要求された URL の下の Web サーバー上に存在するすべての Web サービスと探索ドキュメントが探索できるようになります。したがって、動的な探索を有効にする場合は注意が必要です。Web サーバーがファイアウォールやその他のセキュリティ機能を使用するネットワーク上にない場合は、重要情報が公開される可能性があります。
参照
概念
XML Web サービスの公開および配置
ASP.NET を使用して作成する XML Web サービスの構成オプション