FIX: Connection Problems When You Make a Web Request with WebRequest Class

This article was previously published under Q321831
This article has been archived. It is offered "as is" and will no longer be updated.
You may notice significant performance degradation and contention problems under the following circumstances:
  • You use the WebRequest class to make a Web request on a network.-and-

  • You request a Uniform Resource Identifier (URI) with an Internet Protocol (IP) address instead of a host name.-and-

  • The network is without a DNS server.-or-

  • The DNS server is not configured correctly on the network.
You may also experience this problem when you call Web services because your Web service client uses the WebRequest class to call the Web service.

Note You may also receive HTTP 404 errors if the Web request is routed to the wrong site in Microsoft Internet Information Services (IIS).
These contention problems can occur when you use an IP address in the URI because a reverse Domain Name System (DNS) lookup is done.
To resolve this problem, obtain the latest service pack for Microsoft .NET Framework. For additional information, click the following article number to view the article in theMicrosoft Knowledge Base:
318836 INFO: How to Obtain the Latest .NET Framework Service Pack
The English version of this fix should have the following file attributes or later:
   Date         Time   Version        Size        File name   --------------------------------------------------------------   25-Apr-2002  21:25  1.0.3705.266   1,163,264   System.dll				


To work around this problem, you can add the associated host name to the host file. This prevents the reverse DNS lookup to query the DNS server.
Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article. This problem was first corrected in Microsoft .NET Framework Service Pack 2 (SP2).
The following code samples reproduce this problem:
//syncWebRequest request = WebRequest.Create("");Stream response = request.GetResponse();//asyncRequestState state = new RequestState();HttpWebRequest request = (HttpWebRequest)WebRequest.Create("");state.Request = request;IAsyncResult response = (IAsyncResult)request.BeginGetResponse(new AsyncCallback(this.MyCallback), state);				

Article ID: 321831 - Last Review: 01/17/2015 05:32:51 - Revision: 2.3

Microsoft .NET Framework 1.1

  • kbnosurvey kbarchive kbhotfixserver kbqfe kbbcl kbbug kbfix kbnetframe100presp2fix kbnetframe100sp2fix KB321831