Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All

Dns.BeginResolve Method

Note: This API is now obsolete.

Begins an asynchronous request to resolve a DNS host name or IP address to an IPAddress instance.

Namespace:  System.Net
Assembly:  System (in System.dll)

[ObsoleteAttribute("BeginResolve is obsoleted for this type, please use BeginGetHostEntry instead. http://go.microsoft.com/fwlink/?linkid=14202")]
[HostProtectionAttribute(SecurityAction.LinkDemand, ExternalThreading = true)]
public static IAsyncResult BeginResolve(
	string hostName,
	AsyncCallback requestCallback,
	Object stateObject


Type: System.String
The DNS name of the host.
Type: System.AsyncCallback
An AsyncCallback delegate that references the method to invoke when the operation is complete.
Type: System.Object
A user-defined object that contains information about the operation. This object is passed to the requestCallback delegate when the operation is complete.

Return Value

Type: System.IAsyncResult
An IAsyncResult instance that references the asynchronous request.


hostName is null.


The caller does not have permission to access DNS information.

The asynchronous BeginResolve operation must be completed by calling the EndResolve method. Typically, the method is invoked by the requestCallback delegate.

This method does not block until the operation is complete. To block until the operation is complete, use the Resolve method.

For more information about using the asynchronous programming model, see Calling Synchronous Methods Asynchronously.


This member emits trace information when you enable network tracing in your application. For more information, see Network Tracing.


The HostProtectionAttribute attribute applied to this type or member has the following Resources property value: ExternalThreading. The HostProtectionAttribute does not affect desktop applications (which are typically started by double-clicking an icon, typing a command, or entering a URL in a browser). For more information, see the HostProtectionAttribute class or SQL Server Programming and Host Protection Attributes.

The following example uses BeginResolve to resolve a DNS host name to an IPAddress.

class DnsBeginGetHostByName
   public static System.Threading.ManualResetEvent allDone = null;

   class RequestState
      public IPHostEntry host;
      public RequestState()
         host = null;

   public static void Main()
     allDone = new ManualResetEvent(false);
     // Create an instance of the RequestState class.
     RequestState myRequestState = new RequestState();

     // Begin an asynchronous request for information like host name, IP addresses, or 
     // aliases for specified the specified URI.
     IAsyncResult asyncResult = Dns.BeginResolve("www.contoso.com", new AsyncCallback(RespCallback), myRequestState );

     // Wait until asynchronous call completes.
     Console.WriteLine("Host name : " + myRequestState.host.HostName);
     Console.WriteLine("\nIP address list : ");
     for(int index=0; index < myRequestState.host.AddressList.Length; index++)
     Console.WriteLine("\nAliases : ");
     for(int index=0; index < myRequestState.host.Aliases.Length; index++)

   private static void RespCallback(IAsyncResult ar)
       // Convert the IAsyncResult object to a RequestState object.
       RequestState tempRequestState = (RequestState)ar.AsyncState;
       // End the asynchronous request.
       tempRequestState.host = Dns.EndResolve(ar);
	   catch(ArgumentNullException e) 
       Console.WriteLine("ArgumentNullException caught!!!");
       Console.WriteLine("Source : " + e.Source);
       Console.WriteLine("Message : " + e.Message);
     catch(Exception e)
       Console.WriteLine("Exception caught!!!");
       Console.WriteLine("Source : " + e.Source);
       Console.WriteLine("Message : " + e.Message);

.NET Framework

Supported in: 1.1, 1.0
Obsolete (compiler warning) in 4
Obsolete (compiler warning) in 3.5
Obsolete (compiler warning) in 3.5 SP1
Obsolete (compiler warning) in 3.0
Obsolete (compiler warning) in 3.0 SP1
Obsolete (compiler warning) in 3.0 SP2
Obsolete (compiler warning) in 2.0
Obsolete (compiler warning) in 2.0 SP1
Obsolete (compiler warning) in 2.0 SP2

.NET Framework Client Profile

Obsolete (compiler warning) in 4
Obsolete (compiler warning) in 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Community Additions

© 2015 Microsoft