다음을 통해 공유


DiscoveryClientProtocol.Discover(String) 메서드

정의

제공된 URL이 검색 문서인지 여부를 확인하기 위해 해당 URL을 검색합니다.

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

매개 변수

url
String

XML Web services 검색이 시작되는 URL입니다.

반환

DiscoveryDocument

제공된 URL에서 XML Web services 검색을 통해 가져온 결과를 포함하는 DiscoveryDocument입니다.

예외

제공된 URL에 액세스했을 때 OK가 아닌 다른 HTTP 상태 코드가 반환되는 경우

url 매개 변수는 유효한 URL이지만 유효한 검색 문서를 가리키지 않습니다.

예제

다음 코드 예제는 XML 웹 서비스를 검색하는 동안 각 문서에 있는 Documents 참조와 함께 속성의 문서에 대한 세부 정보로 채우는 DataGrid 웹 양식입니다. 메서드는 PopulateGrid 호출의 결과 Discover 와 다음에 ResolveAll호출을 채웁니다DataGrid.

 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;
        
        // Only discover discovery documents, which might contain references to other types of discoverable documents.  
    doc = client.Discover(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
     ' Only discover discovery documents, which might contain references to other types of discoverable documents. 
     doc = client.Discover(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 our Grid 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

설명

이 메서드는 Discover 제공된 URL이 검색 문서인 것으로 예상합니다. URL이 서비스 설명 또는 XML 스키마를 참조하는 경우 예외가 throw됩니다. XML 스키마 또는 서비스 설명을 검색하려면 메서드를 호출합니다 DiscoverAny .

제공된 URL이 유효한 검색 문서를 가리키는 경우 제공된 URL의 검색 문서가 및 References 컬렉션에 Documents 추가됩니다. 또한 검색 문서 내의 참조는 컬렉션에 References 추가되지만 유효한 검색 문서를 가리키는 것으로 확인되지는 않습니다. 참조를 확인하려면 유효한 검색 문서를 가리키고 또는 ResolveOneLevel 메서드를 ResolveAll 호출합니다.

적용 대상