DiscoveryClientProtocol.DiscoverAny(String) Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Discovers the supplied URL to determine if it is a discovery document, service description or an XML Schema Definition (XSD) schema.
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
Parameters
- url
- String
The URL where XML Web services discovery begins.
Returns
A DiscoveryDocument containing the results of XML Web services discovery at the supplied URL. If the url
parameter refers to a service description or an XSD Schema, a DiscoveryDocument is created in memory for it.
Exceptions
Accessing the supplied URL returned an HTTP status code other than OK.
The url
parameter is a valid URL, but does not point to a valid discovery document, service description, or XSD schema.
Examples
The following code example is a Web Form that populates a DataGrid with the details about the documents in the Documents property together with the references found in each document during an XML Web services discovery. The PopulateGrid
method fills the DataGrid with the results from a DiscoverAny invocation followed by a call to 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
Remarks
The DiscoverAny method discovers whether the supplied URL is a discovery document, service description or XSD schema. If it is known that the URL only refers to a discovery document, the Discover method might be invoked.
If the supplied URL points to a valid discovery document, XSD schema, or service description, the discovery document at the supplied URL is added to the Documents and References collections. When the supplied URL refers to an XSD schema or Service Description a DiscoveryDocument is created in memory and added to the Documents and References collections. Additionally, references within the discovery document are added to the References collection, but not verified to point to valid discovery documents. To verify that references point to valid discovery documents, invoke the ResolveAll or ResolveOneLevel methods.