HttpListenerResponse.KeepAlive 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得或設定值,指出伺服器是否要求持續性連線。
public:
property bool KeepAlive { bool get(); void set(bool value); };
public bool KeepAlive { get; set; }
member this.KeepAlive : bool with get, set
Public Property KeepAlive As Boolean
屬性值
如果伺服器要求持續性連線,則為 true
,否則為 false
。 預設為 true
。
例外狀況
這個物件已經關閉。
範例
下列程式代碼範例示範如何設定此屬性的值。
// 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);
' When the client is not authenticated, there is no Identity.
If context.User Is Nothing Then
message.Append("<HTML><BODY><p> Hello local user! </p></BODY></HTML>")
Else
' Get the requester's identity.
Dim identity As System.Security.Principal.WindowsIdentity = 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>")
End If
' Configure the response.
Dim response As HttpListenerResponse = context.Response
' Use the encoding from the response if one has been set.
' Otherwise, use UTF8.
Dim encoding As System.Text.Encoding = response.ContentEncoding
If encoding Is Nothing Then
encoding = System.Text.Encoding.UTF8
response.ContentEncoding = encoding
End If
Dim buffer() As Byte = encoding.GetBytes(message.ToString())
response.ContentLength64 = buffer.Length
response.StatusCode = CInt(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.
Dim stream As System.IO.Stream = response.OutputStream
stream.Write(buffer, 0, buffer.Length)
備註
如果 HTTP 用戶端和伺服器預期在短時間內交換數據多次,持續聯機會允許它們避免開啟和關閉每個訊息的 TCP 連線所需的額外負荷,以加速其通訊。 持續性聯機在現代網頁瀏覽器與網頁伺服器之間的通訊中廣泛使用。
在 RTF 編輯器網站 https://www.rfc-editor.org/ () ) 提供的 RFC 2616 (RFC 2616 通訊協定規格中會詳細說明持續性連線。