HttpListenerResponse.KeepAlive Property

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.

ExceptionCondition
ObjectDisposedException

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 (http://www.rfc-editor.org).

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>");
}
else
{
    // Get the requester's identity.
    System.Security.Principal.WindowsIdentity identity = WindowsIdentity.GetCurrent();
    // Construct the response body.
    message.AppendFormat ("<HTML><BODY><p> Hello {0}!<br/>", 
        identity.Name);
    message.AppendFormat ("You were authenticated using {0}.</p>", 
        identity.AuthenticationType);
    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

Supported in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

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

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft