HttpListenerResponse.KeepAlive Property


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Gets or sets a value indicating whether the server requests a persistent connection.

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

public bool KeepAlive { get; set; }

Property Value

Type: System.Boolean

true if the server requests a persistent connection; otherwise, false. The default is true.

Exception Condition

This object is closed.

If an HTTP client and server expect to exchange data multiple times in a short period, a persistent connection speeds up their communications by allowing them to avoid the overhead required to open and close a TCP connection for each message. Persistent connections are in widespread use in communications between modern Web browsers and Web servers.

Persistent connections are described in detail in the HTTP/1.1 protocol specification (RFC 2616) available at the RTF Editor Web site (

The following code example demonstrates setting the value of this property.

// When the client is not authenticated, there is no Identity.
if (context.User == null)
    message.Append ("<HTML><BODY><p> Hello local user! </p></BODY></HTML>");
    // Get the requester's identity.
    System.Security.Principal.WindowsIdentity identity = WindowsIdentity.GetCurrent();
    // Construct the response body.
    message.AppendFormat ("<HTML><BODY><p> Hello {0}!<br/>", 
    message.AppendFormat ("You were authenticated using {0}.</p>", 
    message.Append ("</BODY></HTML>");

// Configure the response.
HttpListenerResponse response = context.Response;

// Use the encoding from the response if one has been set.
// Otherwise, use UTF8.
System.Text.Encoding encoding = response.ContentEncoding;
if (encoding == null)
    encoding = System.Text.Encoding.UTF8;
    response.ContentEncoding = encoding;
byte[] buffer = encoding.GetBytes (message.ToString ());
response.ContentLength64 = buffer.Length;
response.StatusCode = (int) HttpStatusCode.OK;
response.StatusDescription = "OK";
response.ProtocolVersion = new Version ("1.1");
// Don't keep the TCP connection alive; 
// We don't expect multiple requests from the same client.
response.KeepAlive = false;
// Write the response body.
System.IO.Stream stream = response.OutputStream;
stream.Write(buffer, 0, buffer.Length);

.NET Framework
Available since 2.0
Return to top