DiscoveryClientProtocol イベント
DiscoveryClientProtocol クラス
アセンブリ: System.Web.Services (system.web.services.dll 内)


XML Web サービス探索とは探索を行うプロセスであり、利用可能な XML Web サービスを記述している 1 つ以上の関連ドキュメントの場所を確認します。XML Web サービス探索を通じて、XML Web サービス クライアントは特定の URL で利用できる XML Web サービスを確認し、またそのサービスの使い方を確認します。XML Web サービス探索は、既にディレクトリ サービスなどを通じて http://uddi.microsoft.com などの探索ドキュメントへの URL を取得していることを前提としていますが、提供される XML Web サービスの詳細について知っておく必要はありません。XML Web サービス探索をとおして、指定 URL で DiscoveryDocument にリストされている XML Web サービスについての詳細を探索できます。
XML Web サービス クライアントは URL を Discover メソッドまたは DiscoverAny メソッドに指定することにより XML Web サービスの探索を開始します。通常、この URL は探索ドキュメントを参照します。つまり、References プロパティに追加されている 1 つ以上の XML Web サービスを記述しているドキュメントを参照します。この時点では、そのドキュメントだけがダウンロードされ、XML Web サービスについて有効な情報を指しているかどうかが検証されます。しかし、そのドキュメントに格納される参照はこの段階ではまだ検証されません。その代わりに、参照は References プロパティに追加されます。参照が有効かどうかを検証するには、Documents プロパティに有効な参照ドキュメントを追加する ResolveAll メソッドまたは ResolveOneLevel メソッドを呼び出します。最後に、クライアントが探索結果をディスクに保存する場合は、WriteAll メソッドを呼び出します。
XML Web サービス探索へのプログラムによるアクセスが必要ない場合は、Microsoft .NET Framework SDK に含まれている Web サービス検出ツール (Disco.exe) を使用して、コマンド プロンプトから XML Web サービスの探索を行います。詳細については、Web サービス検出ツール (Disco.exe) のトピックを参照してください。

DiscoveryClientProtocol クラスと System.Web.Services.Discovery 名前空間にある他のクラスを使用して XML Web サービス探索をプログラムによって呼び出す Web フォームのコード例を次に示します。このコード例では Discover、DiscoverAny、Discover、ResolveAll、ResolveOneLevel、ReadAllWriteAll の各メソッドを使用しています。
<%@ Page Language="VB" Debug="true" %> <%@ Import Namespace="System.IO" %> <%@ Import Namespace="System.Web.Services.Discovery" %> <%@ Import Namespace="System.Net" %> <%@ Import Namespace="System.Data" %> <HTML> <HEAD> <SCRIPT RUNAT="SERVER"> Public Sub Discover_Click(Source As Object, e as EventArgs ) ' Specify the URL to discover. Dim sourceUrl as String = DiscoURL.Text ' Specify the URL to save discovery results to or read from. Dim outputDirectory As String = DiscoDir.Text Dim client as DiscoveryClientProtocol = new DiscoveryClientProtocol() ' Use default credentials to access the URL being discovered. client.Credentials = CredentialCache.DefaultCredentials Try Dim doc As DiscoveryDocument ' Check to see whether the user wanted to read in existing discovery results. If (DiscoverMode.Value = "ReadAll") Then Dim results As DiscoveryClientResultCollection results = client.ReadAll(Path.Combine(DiscoDir.Text,"results.discomap")) SaveMode.Value = "NoSave" Else ' Check to see whether the user user wants the capability to discover any kind of discoverable document. If (DiscoverMode.Value = "DiscoverAny") Then doc = client.DiscoverAny(sourceUrl) Else ' Discover only discovery documents, which might contain references to other types of discoverable documents. doc = client.Discover(sourceUrl) End If ' Check to see whether the user wants to resolve all possible references from the supplied URL. If (ResolveMode.Value = "ResolveAll") Then client.ResolveAll() ' Check to see whether the user wants to resolve references nested more than one level deep. ElseIf (ResolveMode.Value = "ResolveOneLevel") Then client.ResolveOneLevel() Else Status.Text = String.Empty End If End If Catch e2 As Exception DiscoveryResultsGrid.Columns.Clear() Status.Text = e2.Message End Try ' If documents were discovered, display the results in a data grid. If (client.Documents.Count > 0) Then 'populate our Grid with the discovery results. PopulateGrid(client) End If ' If the user also asked to have the results saved to the Web server, do so. If (SaveMode.Value = "Save") Then Dim results As DiscoveryClientResultCollection results = client.WriteAll(outputDirectory, "results.discomap") Status.Text = "The following file holds the links to each of the discovery results: <b>" + _ Path.Combine(outputDirectory,"results.discomap") + "</b>" End If End Sub Public Sub PopulateGrid(client As DiscoveryClientProtocol) Dim dt As DataTable = new DataTable() Dim dr AS DataRow dt.Columns.Add(new DataColumn("Discovery Document") ) dt.Columns.Add(new DataColumn("References") ) dt.Columns.Add(new DataColumn("Type") ) Dim entry As DictionaryEntry For Each entry in client.Documents dr = dt.NewRow() dr(0) = entry.Key dr(2) = entry.Value.GetType() dt.Rows.Add(dr) If TypeOf entry.Value Is DiscoveryDocument Then Dim discoDoc As DiscoveryDocument = entry.Value Dim discoref As DiscoveryReference For Each discoref in discoDoc.References dr = dt.NewRow() dr(1) = discoref.Url dr(2) = discoref.GetType() dt.Rows.Add(dr) Next End If Next Dim dv As DataView = new DataView(dt) DiscoveryResultsGrid.DataSource = dv DiscoveryResultsGrid.DataBind() End Sub </SCRIPT> </HEAD> <BODY> <H3> <p align="center"> Discovery Class Sample </p> </H3> <FORM RUNAT="SERVER"> <hr> Enter the URL to discover: <asp:textbox id=DiscoURL Columns=60 runat="SERVER" /><p> Discovery Mode: <select id="DiscoverMode" size=1 runat="SERVER"> <option Value="DiscoverAny">Discover any of the discovery types</option> <option Value="Discover">Discover just discovery documents</option> <option Value="ReadAll">Read in saved discovery results</option> </select> <p> Resolve References Mode: <select id="ResolveMode" size=1 runat="SERVER"> <option Value="ResolveAll">Resolve all references</option> <option Value="ResolveOneLevel">Resolve references only in discovery documents within the supplied URL</option> <option Value="ResolveNone">Do not resolve references</option> </select> <p> Save Results Mode: <select id="SaveMode" size=1 runat="SERVER"> <option Value="NoSave">Do not save any of the discovery documents found locally</option> <option Value="Save">Save the discovery documents found locally</option> </select> <p> Enter the directory to Read/Save the Discovery results: <asp:textbox id=DiscoDir runat="SERVER" /> <p> <p align="center"> <asp:Button id=Discover Text="Discover!" onClick="Discover_Click" runat="SERVER"/> </p><p> <hr> <asp:label id="Status" runat="SERVER" /><p> <asp:DataGrid id="DiscoveryResultsGrid" BorderColor="black" BorderWidth="1" CellPadding="3" AutoGenerateColumns="true" runat="server"> <HeaderStyle BackColor="DarkBlue" ForeColor="White"> </HeaderStyle> <AlternatingItemStyle BackColor="LightYellow"> </AlternatingItemStyle> </asp:DataGrid> </FORM> </BODY>
<%@ Page Language="C#" Debug="true" %> <%@ Import Namespace="System.Web.Services.Discovery" %> <%@ Import Namespace="System.IO" %> <%@ Import Namespace="System.Net" %> <%@ Import Namespace="System.Data" %> <HTML> <HEAD> <SCRIPT RUNAT="SERVER"> protected void Discover_Click(object Source, EventArgs e) { // Specify the URL to discover. string sourceUrl = DiscoURL.Text; // Specify the URL to save discovery results to or read from. string outputDirectory = DiscoDir.Text; DiscoveryClientProtocol client = new DiscoveryClientProtocol(); // Use default credentials to access the URL being discovered. client.Credentials = CredentialCache.DefaultCredentials; try { DiscoveryDocument doc; // Check to see if whether the user wanted to read in existing discovery results. if (DiscoverMode.Value == "ReadAll") { DiscoveryClientResultCollection results = client.ReadAll(Path.Combine(DiscoDir.Text ,"results.discomap")); SaveMode.Value = "NoSave"; } else { // Check to see if whether the user wants the capability to discover any kind of discoverable document. if (DiscoverMode.Value == "DiscoverAny") { doc = client.DiscoverAny(sourceUrl); } else // Discover only discovery documents, which might contain references to other types of discoverable documents. { doc = client.Discover(sourceUrl); } // Check to see whether the user wants to resolve all possible references from the supplied URL. if (ResolveMode.Value == "ResolveAll") client.ResolveAll(); else { // Check to see whether the user wants to resolve references nested more than one level deep. if (ResolveMode.Value == "ResolveOneLevel") client.ResolveOneLevel(); else Status.Text = String.Empty; } } } catch ( Exception e2) { DiscoveryResultsGrid.Columns.Clear(); Status.Text = e2.Message; } // If documents were discovered, display the results in a data grid. if (client.Documents.Count > 0) PopulateGrid(client); // If the user also asked to have the results saved to the Web server, do so. if (SaveMode.Value == "Save") { DiscoveryClientResultCollection results = client.WriteAll(outputDirectory, "results.discomap"); Status.Text = "The following file holds the links to each of the discovery results: <b>" + Path.Combine(outputDirectory,"results.discomap") + "</b>"; } } protected void PopulateGrid(DiscoveryClientProtocol client) { DataTable dt = new DataTable(); DataRow dr; dt.Columns.Add(new DataColumn("Discovery Document")); dt.Columns.Add(new DataColumn("References")); dt.Columns.Add(new DataColumn("Type")); foreach (DictionaryEntry entry in client.Documents) { dr = dt.NewRow(); dr[0] = (string) entry.Key; dr[2] = entry.Value.GetType(); dt.Rows.Add(dr); if (entry.Value is DiscoveryDocument) { DiscoveryDocument discoDoc = (DiscoveryDocument) entry.Value; foreach (DiscoveryReference discoref in discoDoc.References) { dr = dt.NewRow(); dr[1] = discoref.Url; dr[2] = discoref.GetType(); dt.Rows.Add(dr); } } } DataView dv = new DataView(dt); DiscoveryResultsGrid.DataSource = (ICollection) dv; DiscoveryResultsGrid.DataBind(); } </SCRIPT> </HEAD> <BODY> <H3> <p align="center"> Discovery Class Sample </p> </H3> <FORM RUNAT="SERVER"> <hr> Enter the URL to discover: <asp:textbox id=DiscoURL Columns=60 runat="SERVER" /><p> Discovery Mode: <select id="DiscoverMode" size=1 runat="SERVER"> <option Value="DiscoverAny">Discover any of the discovery types</option> <option Value="Discover">Discover just discovery documents</option> <option Value="ReadAll">Read in saved discovery results</option> </select> <p> Resolve References Mode: <select id="ResolveMode" size=1 runat="SERVER"> <option Value="ResolveAll">Resolve all references</option> <option Value="ResolveOneLevel">Resolve references only in discovery documents within the supplied URL</option> <option Value="ResolveNone">Do not resolve references</option> </select> <p> Save Results Mode: <select id="SaveMode" size=1 runat="SERVER"> <option Value="NoSave">Do not save any of the discovery documents found locally</option> <option Value="Save">Save the discovery documents found locally</option> </select> <p> Enter the directory to Read/Save the Discovery results: <asp:textbox id=DiscoDir runat="SERVER" /> <p> <p align="center"> <asp:Button id=Discover Text="Discover!" onClick="Discover_Click" runat="SERVER"/> </p><p> <hr> <asp:label id="Status" runat="SERVER" /><p> <asp:DataGrid id="DiscoveryResultsGrid" BorderColor="black" BorderWidth="1" CellPadding="3" AutoGenerateColumns="true" runat="server"> <HeaderStyle BackColor="DarkBlue" ForeColor="White"> </HeaderStyle> <AlternatingItemStyle BackColor="LightYellow"> </AlternatingItemStyle> </asp:DataGrid> </FORM> </BODY>

System.MarshalByRefObject
System.ComponentModel.Component
System.Web.Services.Protocols.WebClientProtocol
System.Web.Services.Protocols.HttpWebClientProtocol
System.Web.Services.Discovery.DiscoveryClientProtocol


Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


DiscoveryClientProtocol コンストラクタ
アセンブリ: System.Web.Services (system.web.services.dll 内)


Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


DiscoveryClientProtocol プロパティ

名前 | 説明 | |
---|---|---|
![]() | AdditionalInformation | 探索ドキュメントで発見された参照に加えて、情報を取得します。 |
![]() | AllowAutoRedirect | クライアントがサーバーのリダイレクトに自動的に従うかどうかを取得または設定します。 ( HttpWebClientProtocol から継承されます。) |
![]() | ClientCertificates | クライアント証明書のコレクションを取得します。 ( HttpWebClientProtocol から継承されます。) |
![]() | ConnectionGroupName | 要求に対して使用する接続グループの名前を取得または設定します。 ( WebClientProtocol から継承されます。) |
![]() | Container | Component を格納している IContainer を取得します。 ( Component から継承されます。) |
![]() | CookieContainer | cookie のコレクションを取得または設定します。 ( HttpWebClientProtocol から継承されます。) |
![]() | Credentials | XML Web サービス クライアント認証のセキュリティ資格情報を取得または設定します。 ( WebClientProtocol から継承されます。) |
![]() | Documents | 探索ドキュメントのコレクションを取得します。 |
![]() | EnableDecompression | この HttpWebClientProtocol の圧縮解除が有効かどうかを示す Boolean を取得または設定します。既定値は true です。 ( HttpWebClientProtocol から継承されます。) |
![]() | Errors | このクラスからメソッドを呼び出したときに発生した例外のコレクションを取得します。 |
![]() | PreAuthenticate | 事前認証を有効にするかどうかを取得または設定します。 ( WebClientProtocol から継承されます。) |
![]() | Proxy | ファイアウォールをとおして XML Web サービス要求を行うためのプロキシ情報を取得または設定します。 ( HttpWebClientProtocol から継承されます。) |
![]() | References | 解決された探索ドキュメント内に見つかった参照のコレクション。 |
![]() | RequestEncoding | クライアントが XML Web サービスを要求するときに使用される Encoding。 ( WebClientProtocol から継承されます。) |
![]() | Site | Component の ISite を取得または設定します。 ( Component から継承されます。) |
![]() | Timeout | 同期的な XML Web サービスの要求が完了するのを XML Web サービス クライアントが待機する時間 (ミリ秒単位) を示します。 ( WebClientProtocol から継承されます。) |
![]() | UnsafeAuthenticatedConnectionSharing | XML Web サービスをホストしている Web サービスに接続するときにクライアントが NTLM 認証を使用する場合、接続共有が有効になっているかどうかを示す値を取得または設定します。 ( HttpWebClientProtocol から継承されます。) |
![]() | Url | クライアントが要求している XML Web サービスのベース URL を取得または設定します。 ( WebClientProtocol から継承されます。) |
![]() | UseDefaultCredentials | Credentials プロパティを CredentialCache.DefaultCredentials プロパティの値に設定するかどうかを示す値を取得または設定します。 ( WebClientProtocol から継承されます。) |
![]() | UserAgent | それぞれの要求と共に送信されるユーザー エージェント ヘッダーの値を取得または設定します。 ( HttpWebClientProtocol から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | CanRaiseEvents | コンポーネントがイベントを発生させることがきるかどうかを示す値を取得します。 ( Component から継承されます。) |
![]() | DesignMode | Component が現在デザイン モードかどうかを示す値を取得します。 ( Component から継承されます。) |
![]() | Events | Component に結び付けられているイベント ハンドラのリストを取得します。 ( Component から継承されます。) |

DiscoveryClientProtocol メソッド


名前 | 説明 | |
---|---|---|
![]() | AddToCache | クライアント プロトコル ハンドラのインスタンスをキャッシュに追加します。 ( WebClientProtocol から継承されます。) |
![]() | CancelAsync | 呼び出しが完了済みの場合を除き、XML Web サービス メソッドの非同期呼び出しをキャンセルします。 ( HttpWebClientProtocol から継承されます。) |
![]() | Dispose | オーバーロードされます。 Component によって使用されているリソースを解放します。 ( Component から継承されます。) |
![]() | Finalize | Component がガベージ コレクションによってクリアされる前に、アンマネージ リソースを解放し、その他のクリーンアップ操作を実行します。 ( Component から継承されます。) |
![]() | GetFromCache | クライアント プロトコル ハンドラのインスタンスをキャッシュから取得します。 ( WebClientProtocol から継承されます。) |
![]() | GetService | Component またはその Container で提供されるサービスを表すオブジェクトを返します。 ( Component から継承されます。) |
![]() | GetWebRequest | 指定した URI に対する WebRequest を作成します。 ( HttpWebClientProtocol から継承されます。) |
![]() | GetWebResponse | オーバーロードされます。 XML Web サービス メソッドへの要求から応答を返します。 ( HttpWebClientProtocol から継承されます。) |
![]() | MemberwiseClone | オーバーロードされます。 ( MarshalByRefObject から継承されます。) |

DiscoveryClientProtocol メンバ
プログラムによる XML Web サービス探索の呼び出しをサポートします。
DiscoveryClientProtocol データ型で公開されるメンバを以下の表に示します。


名前 | 説明 | |
---|---|---|
![]() | AdditionalInformation | 探索ドキュメントで発見された参照に加えて、情報を取得します。 |
![]() | AllowAutoRedirect | クライアントがサーバーのリダイレクトに自動的に従うかどうかを取得または設定します。(HttpWebClientProtocol から継承されます。) |
![]() | ClientCertificates | クライアント証明書のコレクションを取得します。(HttpWebClientProtocol から継承されます。) |
![]() | ConnectionGroupName | 要求に対して使用する接続グループの名前を取得または設定します。(WebClientProtocol から継承されます。) |
![]() | Container | Component を格納している IContainer を取得します。(Component から継承されます。) |
![]() | CookieContainer | cookie のコレクションを取得または設定します。(HttpWebClientProtocol から継承されます。) |
![]() | Credentials | XML Web サービス クライアント認証のセキュリティ資格情報を取得または設定します。(WebClientProtocol から継承されます。) |
![]() | Documents | 探索ドキュメントのコレクションを取得します。 |
![]() | EnableDecompression | この HttpWebClientProtocol の圧縮解除が有効かどうかを示す Boolean を取得または設定します。既定値は true です。(HttpWebClientProtocol から継承されます。) |
![]() | Errors | このクラスからメソッドを呼び出したときに発生した例外のコレクションを取得します。 |
![]() | PreAuthenticate | 事前認証を有効にするかどうかを取得または設定します。(WebClientProtocol から継承されます。) |
![]() | Proxy | ファイアウォールをとおして XML Web サービス要求を行うためのプロキシ情報を取得または設定します。(HttpWebClientProtocol から継承されます。) |
![]() | References | 解決された探索ドキュメント内に見つかった参照のコレクション。 |
![]() | RequestEncoding | クライアントが XML Web サービスを要求するときに使用される Encoding。(WebClientProtocol から継承されます。) |
![]() | Site | Component の ISite を取得または設定します。(Component から継承されます。) |
![]() | Timeout | 同期的な XML Web サービスの要求が完了するのを XML Web サービス クライアントが待機する時間 (ミリ秒単位) を示します。(WebClientProtocol から継承されます。) |
![]() | UnsafeAuthenticatedConnectionSharing | XML Web サービスをホストしている Web サービスに接続するときにクライアントが NTLM 認証を使用する場合、接続共有が有効になっているかどうかを示す値を取得または設定します。(HttpWebClientProtocol から継承されます。) |
![]() | Url | クライアントが要求している XML Web サービスのベース URL を取得または設定します。(WebClientProtocol から継承されます。) |
![]() | UseDefaultCredentials | Credentials プロパティを CredentialCache.DefaultCredentials プロパティの値に設定するかどうかを示す値を取得または設定します。(WebClientProtocol から継承されます。) |
![]() | UserAgent | それぞれの要求と共に送信されるユーザー エージェント ヘッダーの値を取得または設定します。(HttpWebClientProtocol から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | CanRaiseEvents | コンポーネントがイベントを発生させることがきるかどうかを示す値を取得します。(Component から継承されます。) |
![]() | DesignMode | Component が現在デザイン モードかどうかを示す値を取得します。(Component から継承されます。) |
![]() | Events | Component に結び付けられているイベント ハンドラのリストを取得します。(Component から継承されます。) |


名前 | 説明 | |
---|---|---|
![]() | AddToCache | クライアント プロトコル ハンドラのインスタンスをキャッシュに追加します。 (WebClientProtocol から継承されます。) |
![]() | CancelAsync | 呼び出しが完了済みの場合を除き、XML Web サービス メソッドの非同期呼び出しをキャンセルします。 (HttpWebClientProtocol から継承されます。) |
![]() | Dispose | オーバーロードされます。 Component によって使用されているリソースを解放します。 (Component から継承されます。) |
![]() | Finalize | Component がガベージ コレクションによってクリアされる前に、アンマネージ リソースを解放し、その他のクリーンアップ操作を実行します。 (Component から継承されます。) |
![]() | GetFromCache | クライアント プロトコル ハンドラのインスタンスをキャッシュから取得します。 (WebClientProtocol から継承されます。) |
![]() | GetService | Component またはその Container で提供されるサービスを表すオブジェクトを返します。 (Component から継承されます。) |
![]() | GetWebRequest | 指定した URI に対する WebRequest を作成します。 (HttpWebClientProtocol から継承されます。) |
![]() | GetWebResponse | オーバーロードされます。 XML Web サービス メソッドへの要求から応答を返します。 (HttpWebClientProtocol から継承されます。) |
![]() | MemberwiseClone | オーバーロードされます。 ( MarshalByRefObject から継承されます。) |


- DiscoveryClientProtocolのページへのリンク