Freigeben über


DiscoveryClientProtocol.DiscoverAny-Methode

Ermittelt den angegebenen URL, um zu bestimmen, ob dieser ein Discovery-Dokument, eine Dienstbeschreibung oder ein XSD-Schema (XML Schema Definition) darstellt.

Namespace: System.Web.Services.Discovery
Assembly: System.Web.Services (in system.web.services.dll)

Syntax

'Declaration
Public Function DiscoverAny ( _
    url As String _
) As DiscoveryDocument
'Usage
Dim instance As DiscoveryClientProtocol
Dim url As String
Dim returnValue As DiscoveryDocument

returnValue = instance.DiscoverAny(url)
public DiscoveryDocument DiscoverAny (
    string url
)
public:
DiscoveryDocument^ DiscoverAny (
    String^ url
)
public DiscoveryDocument DiscoverAny (
    String url
)
public function DiscoverAny (
    url : String
) : DiscoveryDocument

Parameter

  • url
    Der URL, bei dem das XML Web Services Discovery-Tool beginnt.

Rückgabewert

Ein DiscoveryDocument, das die Ergebnisse der Ausführung des XML Web Services Discovery-Tools unter dem angegebenen URL enthält. Wenn der url-Parameter auf eine Dienstbeschreibung oder ein XSD-Schema verweist, wird im Speicher ein entsprechendes DiscoveryDocument erstellt.

Ausnahmen

Ausnahmetyp Bedingung

WebException

Beim Zugriff auf den angegebenen URL wurde ein anderer HTTP-Statuscode als OK zurückgegeben.

InvalidOperationException

Der url-Parameter ist ein gültiger URL. Er zeigt jedoch nicht auf ein gültiges Discovery-Dokument, eine gültige Dienstbeschreibung oder ein gültiges XSD-Schema.

Hinweise

Die DiscoverAny-Methode ermittelt, ob es sich bei dem angegebenen URL um ein Discovery-Dokument, eine Dienstbeschreibung oder ein XSD-Schema handelt. Wenn bekannt ist, dass der URL nur auf ein Discovery-Dokument verweist, kann die Discover-Methode aufgerufen werden.

Wenn der angegebene URL auf ein gültiges Discovery-Dokument, ein gültiges XSD-Schema oder eine gültige Dienstbeschreibung zeigt, wird das Discovery-Dokument unter dem angegebenen URL der Documents-Auflistung und der References-Auflistung hinzugefügt. Wenn der angegebene URL auf ein XSD-Schema oder eine Dienstbeschreibung verweist, wird ein DiscoveryDocument im Speicher erstellt und der Documents-Auflistung sowie der References-Auflistung hinzugefügt. Darüber hinaus werden der References-Auflistung im Discovery-Dokument enthaltene Verweise hinzugefügt. Es wird jedoch nicht überprüft, ob sie auf gültige Discovery-Dokumente zeigen. Um zu überprüfen, ob die Verweise auf gültige Discovery-Dokumente zeigen, rufen Sie die ResolveAll-Methode oder die ResolveOneLevel-Methode auf.

Beispiel

Das folgende Codebeispiel ist ein Web Form, das ein DataGrid mit den ausführlichen Informationen über die Dokumente in der Documents-Eigenschaft zusammen mit den während der Ausführung eines XML Web Services Discovery-Tools in den einzelnen Dokumenten gefundenen Verweisen füllt. Die PopulateGrid-Methode füllt das DataGrid mit den Ergebnissen des Aufrufs von DiscoverAny, worauf ein Aufruf von ResolveAll folgt.

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
 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>";
}

Plattformen

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 unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

DiscoveryClientProtocol-Klasse
DiscoveryClientProtocol-Member
System.Web.Services.Discovery-Namespace