DiscoveryClientProtocol.DiscoverAny(String) メソッド

定義

指定した URL を探索して、この URL が探索ドキュメントであるか、サービスの説明であるか、または XML スキーマ定義 (XSD) スキーマであるかを判断します。

public:
 System::Web::Services::Discovery::DiscoveryDocument ^ DiscoverAny(System::String ^ url);
public System.Web.Services.Discovery.DiscoveryDocument DiscoverAny (string url);
member this.DiscoverAny : string -> System.Web.Services.Discovery.DiscoveryDocument
Public Function DiscoverAny (url As String) As DiscoveryDocument

パラメーター

url
String

XML Web サービス探索を開始する URL。

戻り値

指定された URL にある、XML Web サービス探索の結果を格納している DiscoveryDocumenturl パラメーターがサービスの説明または XSD スキーマを参照している場合は、メモリ内に DiscoveryDocument が作成されます。

例外

指定した URL へのアクセスにより、OK 以外の HTTP ステータス コードが返されました。

url パラメーターは有効な URL ですが、有効な探索ドキュメント、サービスの説明、XSD スキーマのいずれも指していません。

次のコード例は、 プロパティ内Documentsのドキュメントに関する詳細と、XML Web サービスの検出中に各ドキュメントで見つかった参照を 設定DataGridする Web フォームです。 メソッドは PopulateGridDataGrid の呼び出しの結果 DiscoverAny を入力し、その後に への ResolveAll呼び出しを行います。

 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;
        
        // Discover the URL for any discoverable documents. 
    doc = client.DiscoverAny(sourceUrl);
   
        // Resolve all possible references from the supplied URL.
        client.ResolveAll();
      }
      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);

  // Save the discovery results to disk.
      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>";
}
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
     ' Discover the URL for any discoverable documents. 
     doc = client.DiscoverAny(sourceUrl)

 ' Resolve all possible references from the supplied URL.
     client.ResolveAll()
           
    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 the DataGrid with the discovery results.
     PopulateGrid(client)
    End If

    ' Save the discovery results to disk	    
    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 Sub

注釈

メソッドは DiscoverAny 、指定された URL が探索ドキュメント、サービスの説明、または XSD スキーマであるかどうかを検出します。 URL が探索ドキュメントのみを参照することがわかっている場合は、 メソッドが Discover 呼び出される可能性があります。

指定された URL が有効な探索ドキュメント、XSD スキーマ、またはサービスの説明を指している場合、指定された URL にある探索ドキュメントが コレクションと References コレクションにDocuments追加されます。 指定された URL が XSD スキーマまたはサービスの説明 を参照する場合、 DiscoveryDocument はメモリ内に作成され、 コレクションと References コレクションにDocuments追加されます。 さらに、探索ドキュメント内の参照はコレクションに References 追加されますが、有効な探索ドキュメントを指す検証は行われません。 参照が有効な探索ドキュメントを指していることを確認するには、 メソッドまたは ResolveOneLevel メソッドをResolveAll呼び出します。

適用対象