在ASP.NET中,用于处理的请求,需要封装为HttpWorkerRequest类型的对象。该类为抽象类,定义在命名空间System.Web下。

#region Assembly System.Web.dll, v4.0.0.0
// C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Web.dll
#endregion using System;
using System.Runtime.InteropServices;
using System.Security.Principal;
using System.Text;
using System.Web.Management; namespace System.Web
{
// Summary:
// This abstract class defines the base worker methods and enumerations used
// by ASP.NET managed code to process requests.
[ComVisible(false)]
public abstract class HttpWorkerRequest
{
// Summary:
// Specifies the index number for the Accept HTTP header.
public const int HeaderAccept = ;
//
// Summary:
// Specifies the index number for the Accept-Charset HTTP header.
public const int HeaderAcceptCharset = ;
//
// Summary:
// Specifies the index number for the Accept-Encoding HTTP header.
public const int HeaderAcceptEncoding = ;
//
// Summary:
// Specifies the index number for the Accept-Language HTTP header.
public const int HeaderAcceptLanguage = ;
//
// Summary:
// Specifies the index number for the Accept-Ranges HTTP header.
public const int HeaderAcceptRanges = ;
//
// Summary:
// Specifies the index number for the Age HTTP header.
public const int HeaderAge = ;
//
// Summary:
// Specifies the index number for the Allow HTTP header.
public const int HeaderAllow = ;
//
// Summary:
// Specifies the index number for the Authorization HTTP header.
public const int HeaderAuthorization = ;
//
// Summary:
// The index that represents the HTTP Cache-Control HTTP header.
public const int HeaderCacheControl = ;
//
// Summary:
// Specifies the index number for the Connection HTTP header.
public const int HeaderConnection = ;
//
// Summary:
// Specifies the index number for the Content-Encoding HTTP header.
public const int HeaderContentEncoding = ;
//
// Summary:
// Specifies the index number for the Content-Language HTTP header.
public const int HeaderContentLanguage = ;
//
// Summary:
// Specifies the index number for the Content-Length HTTP header.
public const int HeaderContentLength = ;
//
// Summary:
// Specifies the index number for the Content-Location HTTP header.
public const int HeaderContentLocation = ;
//
// Summary:
// Specifies the index number for the Content-MD5 HTTP header.
public const int HeaderContentMd5 = ;
//
// Summary:
// Specifies the index number for the Content-Range HTTP header.
public const int HeaderContentRange = ;
//
// Summary:
// Specifies the index number for the Content-Type HTTP header.
public const int HeaderContentType = ;
//
// Summary:
// Specifies the index number for the Cookie HTTP header.
public const int HeaderCookie = ;
//
// Summary:
// Specifies the index number for the Date HTTP header.
public const int HeaderDate = ;
//
// Summary:
// Specifies the index number for the ETag HTTP header.
public const int HeaderEtag = ;
//
// Summary:
// Specifies the index number for the Except HTTP header.
public const int HeaderExpect = ;
//
// Summary:
// Specifies the index number for the Expires HTTP header.
public const int HeaderExpires = ;
//
// Summary:
// Specifies the index number for the From HTTP header.
public const int HeaderFrom = ;
//
// Summary:
// Specifies the index number for the Host HTTP header.
public const int HeaderHost = ;
//
// Summary:
// Specifies the index number for the If-Match HTTP header.
public const int HeaderIfMatch = ;
//
// Summary:
// Specifies the index number for the If-Modified-Since HTTP header.
public const int HeaderIfModifiedSince = ;
//
// Summary:
// Specifies the index number for the If-None-Match HTTP header.
public const int HeaderIfNoneMatch = ;
//
// Summary:
// Specifies the index number for the If-Range HTTP header.
public const int HeaderIfRange = ;
//
// Summary:
// Specifies the index number for the If-Unmodified-Since HTTP header.
public const int HeaderIfUnmodifiedSince = ;
//
// Summary:
// Specifies the index number for the Keep-Alive HTTP header.
public const int HeaderKeepAlive = ;
//
// Summary:
// Specifies the index number for the Last-Modified HTTP header.
public const int HeaderLastModified = ;
//
// Summary:
// Specifies the index number for the Location HTTP header.
public const int HeaderLocation = ;
//
// Summary:
// Specifies the index number for the Max-Forwards HTTP header.
public const int HeaderMaxForwards = ;
//
// Summary:
// Specifies the index number for the Pragma HTTP header.
public const int HeaderPragma = ;
//
// Summary:
// Specifies the index number for the Proxy-Authenticate HTTP header.
public const int HeaderProxyAuthenticate = ;
//
// Summary:
// Specifies the index number for the Proxy-Authorization HTTP header.
public const int HeaderProxyAuthorization = ;
//
// Summary:
// Specifies the index number for the Range HTTP header.
public const int HeaderRange = ;
//
// Summary:
// Specifies the index number for the Referer HTTP header.
public const int HeaderReferer = ;
//
// Summary:
// Specifies the index number for the Retry-After HTTP header.
public const int HeaderRetryAfter = ;
//
// Summary:
// Specifies the index number for the Server HTTP header.
public const int HeaderServer = ;
//
// Summary:
// Specifies the index number for the Set-Cookie HTTP header.
public const int HeaderSetCookie = ;
//
// Summary:
// Specifies the index number for the TE HTTP header.
public const int HeaderTe = ;
//
// Summary:
// Specifies the index number for the Trailer HTTP header.
public const int HeaderTrailer = ;
//
// Summary:
// Specifies the index number for the Transfer-Encoding HTTP header.
public const int HeaderTransferEncoding = ;
//
// Summary:
// Specifies the index number for the Upgrade HTTP header.
public const int HeaderUpgrade = ;
//
// Summary:
// Specifies the index number for the User-Agent HTTP header.
public const int HeaderUserAgent = ;
//
// Summary:
// Specifies the index number for the Vary HTTP header.
public const int HeaderVary = ;
//
// Summary:
// Specifies the index number for the Via HTTP header.
public const int HeaderVia = ;
//
// Summary:
// Specifies the index number for the Warning HTTP header.
public const int HeaderWarning = ;
//
// Summary:
// Specifies the index number for the WWW-Authenticate HTTP header.
public const int HeaderWwwAuthenticate = ;
//
// Summary:
// Specifies a reason for the request.
public const int ReasonCachePolicy = ;
//
// Summary:
// Specifies a reason for the request.
public const int ReasonCacheSecurity = ;
//
// Summary:
// Specifies a reason for the request.
public const int ReasonClientDisconnect = ;
//
// Summary:
// Specifies a reason for the request. The default value is System.Web.HttpWorkerRequest.ReasonResponseCacheMiss.
public const int ReasonDefault = ;
//
// Summary:
// Specifies a reason for the request.
public const int ReasonFileHandleCacheMiss = ;
//
// Summary:
// Specifies a reason for the request.
public const int ReasonResponseCacheMiss = ;
//
// Summary:
// Specifies the index number for the Maximum HTTP request header.
public const int RequestHeaderMaximum = ;
//
// Summary:
// Specifies the index number for the Maximum HTTP response header.
public const int ResponseHeaderMaximum = ; // Summary:
// Initializes a new instance of the System.Web.HttpWorkerRequest class.
protected HttpWorkerRequest(); // Summary:
// Gets the full physical path to the Machine.config file.
//
// Returns:
// The physical path to the Machine.config file.
public virtual string MachineConfigPath { get; }
//
// Summary:
// Gets the physical path to the directory where the ASP.NET binaries are installed.
//
// Returns:
// The physical directory to the ASP.NET binary files.
public virtual string MachineInstallDirectory { get; }
//
// Summary:
// Gets the corresponding Event Tracking for Windows trace ID for the current
// request.
//
// Returns:
// A trace ID for the current ASP.NET request.
public virtual Guid RequestTraceIdentifier { get; }
//
// Summary:
// Gets the full physical path to the root Web.config file.
//
// Returns:
// The physical path to the root Web.config file.
public virtual string RootWebConfigPath { get; }
//
// Summary:
// Gets a value that indicates whether asynchronous flush operations are supported.
//
// Returns:
// true if asynchronous flush operations are supported; otherwise, false.
public virtual bool SupportsAsyncFlush { get; }
//
// Summary:
// Gets a value that indicates whether asynchronous read operations are supported.
//
// Returns:
// true if asynchronous read operations are supported; otherwise, false.
public virtual bool SupportsAsyncRead { get; } // Summary:
// Sends the currently buffered response to the client.
//
// Parameters:
// callback:
// The method to call when a corresponding asynchronous operation completes.
//
// state:
// A user-provided object that distinguishes this particular asynchronous flush
// operation from other requests.
//
// Returns:
// The worker request buffers the status, headers, and response body until an
// asynchronous flush operation is initiated. If the underlying System.Web.HttpWorkerRequest
// object supports asynchronous flush and this method is called from an asynchronous
// module event or asynchronous handler, the send operation is performed asynchronously.
// Otherwise, the implementation performs a synchronous flush operation.
public virtual IAsyncResult BeginFlush(AsyncCallback callback, object state);
//
// Summary:
// Begins an asynchronous read operation of the request entity body.
//
// Parameters:
// buffer:
// The buffer to read the data into.
//
// offset:
// The byte offset in the buffer at which to begin writing data.
//
// count:
// The maximum number of bytes to read.
//
// callback:
// The method to call when a corresponding asynchronous operation completes.
//
// state:
// A user-provided object that distinguishes this particular asynchronous read
// from other requests.
public virtual IAsyncResult BeginRead(byte[] buffer, int offset, int count, AsyncCallback callback, object state);
//
// Summary:
// Terminates the connection with the client.
public virtual void CloseConnection();
//
// Summary:
// Waits for the pending asynchronous flush operation to complete.
//
// Parameters:
// asyncResult:
// A reference to the pending asynchronous request.
public virtual void EndFlush(IAsyncResult asyncResult);
//
// Summary:
// Used by the runtime to notify the System.Web.HttpWorkerRequest that request
// processing for the current request is complete.
public abstract void EndOfRequest();
//
// Summary:
// Waits for the pending asynchronous read operation to complete.
//
// Parameters:
// asyncResult:
// A reference to the pending asynchronous request.
//
// Returns:
// The number of bytes that have been read from the stream.
public virtual int EndRead(IAsyncResult asyncResult);
//
// Summary:
// Sends all pending response data to the client.
//
// Parameters:
// finalFlush:
// true if this is the last time response data will be flushed; otherwise, false.
public abstract void FlushResponse(bool finalFlush);
//
// Summary:
// Returns the virtual path to the currently executing server application.
//
// Returns:
// The virtual path of the current application.
public virtual string GetAppPath();
//
// Summary:
// Returns the physical path to the currently executing server application.
//
// Returns:
// The physical path of the current application.
public virtual string GetAppPathTranslated();
//
// Summary:
// When overridden in a derived class, returns the application pool ID for the
// current URL.
//
// Returns:
// Always returns null.
public virtual string GetAppPoolID();
//
// Summary:
// Gets the number of bytes read in from the client.
//
// Returns:
// A Long containing the number of bytes read.
public virtual long GetBytesRead();
//
// Summary:
// When overridden in a derived class, gets the certification fields (specified
// in the X.509 standard) from a request issued by the client.
//
// Returns:
// A byte array containing the stream of the entire certificate content.
public virtual byte[] GetClientCertificate();
//
// Summary:
// Gets the certificate issuer, in binary format.
//
// Returns:
// A byte array containing the certificate issuer expressed in binary format.
public virtual byte[] GetClientCertificateBinaryIssuer();
//
// Summary:
// When overridden in a derived class, returns the System.Text.Encoding object
// in which the client certificate was encoded.
//
// Returns:
// The certificate encoding, expressed as an integer.
public virtual int GetClientCertificateEncoding();
//
// Summary:
// When overridden in a derived class, gets a PublicKey object associated with
// the client certificate.
//
// Returns:
// A PublicKey object.
public virtual byte[] GetClientCertificatePublicKey();
//
// Summary:
// When overridden in a derived class, gets the date when the certificate becomes
// valid. The date varies with international settings.
//
// Returns:
// A System.DateTime object representing when the certificate becomes valid.
public virtual DateTime GetClientCertificateValidFrom();
//
// Summary:
// Gets the certificate expiration date.
//
// Returns:
// A System.DateTime object representing the date that the certificate expires.
public virtual DateTime GetClientCertificateValidUntil();
//
// Summary:
// When overridden in a derived class, returns the ID of the current connection.
//
// Returns:
// Always returns 0.
public virtual long GetConnectionID();
//
// Summary:
// When overridden in a derived class, returns the virtual path to the requested
// URI.
//
// Returns:
// The path to the requested URI.
public virtual string GetFilePath();
//
// Summary:
// Returns the physical file path to the requested URI (and translates it from
// virtual path to physical path: for example, "/proj1/page.aspx" to "c:\dir\page.aspx")
//
// Returns:
// The translated physical file path to the requested URI.
public virtual string GetFilePathTranslated();
//
// Summary:
// Returns the specified member of the request header.
//
// Returns:
// The HTTP verb returned in the request header.
public abstract string GetHttpVerbName();
//
// Summary:
// Provides access to the HTTP version of the request (for example, "HTTP/1.1").
//
// Returns:
// The HTTP version returned in the request header.
public abstract string GetHttpVersion();
//
// Summary:
// Returns the standard HTTP request header that corresponds to the specified
// index.
//
// Parameters:
// index:
// The index of the header. For example, the System.Web.HttpWorkerRequest.HeaderAllow
// field.
//
// Returns:
// The HTTP request header.
public virtual string GetKnownRequestHeader(int index);
//
// Summary:
// Returns the index number of the specified HTTP request header.
//
// Parameters:
// header:
// The name of the header.
//
// Returns:
// The index number of the HTTP request header specified in the header parameter.
public static int GetKnownRequestHeaderIndex(string header);
//
// Summary:
// Returns the name of the specified HTTP request header.
//
// Parameters:
// index:
// The index number of the header.
//
// Returns:
// The name of the HTTP request header specified in the index parameter.
public static string GetKnownRequestHeaderName(int index);
//
// Summary:
// Returns the index number of the specified HTTP response header.
//
// Parameters:
// header:
// The name of the HTTP header.
//
// Returns:
// The index number of the HTTP response header specified in the header parameter.
public static int GetKnownResponseHeaderIndex(string header);
//
// Summary:
// Returns the name of the specified HTTP response header.
//
// Parameters:
// index:
// The index number of the header.
//
// Returns:
// The name of the HTTP response header specified in the index parameter.
public static string GetKnownResponseHeaderName(int index);
//
// Summary:
// Provides access to the specified member of the request header.
//
// Returns:
// The server IP address returned in the request header.
public abstract string GetLocalAddress();
//
// Summary:
// Provides access to the specified member of the request header.
//
// Returns:
// The server port number returned in the request header.
public abstract int GetLocalPort();
//
// Summary:
// Returns additional path information for a resource with a URL extension.
// That is, for the path /virdir/page.html/tail, the GetPathInfo value is /tail.
//
// Returns:
// Additional path information for a resource.
public virtual string GetPathInfo();
//
// Summary:
// Returns the portion of the HTTP request body that has already been read.
//
// Returns:
// The portion of the HTTP request body that has been read.
public virtual byte[] GetPreloadedEntityBody();
//
// Summary:
// Gets the portion of the HTTP request body that has currently been read by
// using the specified buffer data and byte offset.
//
// Parameters:
// buffer:
// The data to read.
//
// offset:
// The byte offset at which to begin reading.
//
// Returns:
// The portion of the HTTP request body that has been read.
public virtual int GetPreloadedEntityBody(byte[] buffer, int offset);
//
// Summary:
// Gets the length of the portion of the HTTP request body that has currently
// been read.
//
// Returns:
// An integer containing the length of the currently read HTTP request body.
public virtual int GetPreloadedEntityBodyLength();
//
// Summary:
// When overridden in a derived class, returns the HTTP protocol (HTTP or HTTPS).
//
// Returns:
// HTTPS if the System.Web.HttpWorkerRequest.IsSecure() method is true, otherwise
// HTTP.
public virtual string GetProtocol();
//
// Summary:
// Returns the query string specified in the request URL.
//
// Returns:
// The request query string.
public abstract string GetQueryString();
//
// Summary:
// When overridden in a derived class, returns the response query string as
// an array of bytes.
//
// Returns:
// An array of bytes containing the response.
public virtual byte[] GetQueryStringRawBytes();
//
// Summary:
// Returns the URL path contained in the request header with the query string
// appended.
//
// Returns:
// The raw URL path of the request header.
public abstract string GetRawUrl();
//
// Summary:
// Provides access to the specified member of the request header.
//
// Returns:
// The client's IP address.
public abstract string GetRemoteAddress();
//
// Summary:
// When overridden in a derived class, returns the name of the client computer.
//
// Returns:
// The name of the client computer.
public virtual string GetRemoteName();
//
// Summary:
// Provides access to the specified member of the request header.
//
// Returns:
// The client's HTTP port number.
public abstract int GetRemotePort();
//
// Summary:
// When overridden in a derived class, returns the reason for the request.
//
// Returns:
// Reason code. The default is ReasonResponseCacheMiss.
public virtual int GetRequestReason();
//
// Summary:
// When overridden in a derived class, returns the name of the local server.
//
// Returns:
// The name of the local server.
public virtual string GetServerName();
//
// Summary:
// Returns a single server variable from a dictionary of server variables associated
// with the request.
//
// Parameters:
// name:
// The name of the requested server variable.
//
// Returns:
// The requested server variable.
public virtual string GetServerVariable(string name);
//
// Summary:
// Returns a string that describes the name of the specified HTTP status code.
//
// Parameters:
// code:
// The HTTP status code.
//
// Returns:
// The status description. For example, System.Web.HttpWorkerRequest.GetStatusDescription(System.Int32)
// (404) returns "Not Found".
public static string GetStatusDescription(int code);
//
// Summary:
// Gets the length of the entire HTTP request body.
//
// Returns:
// An integer containing the length of the entire HTTP request body.
public virtual int GetTotalEntityBodyLength();
//
// Summary:
// Returns a nonstandard HTTP request header value.
//
// Parameters:
// name:
// The header name.
//
// Returns:
// The header value.
public virtual string GetUnknownRequestHeader(string name);
//
// Summary:
// Get all nonstandard HTTP header name-value pairs.
//
// Returns:
// An array of header name-value pairs.
[CLSCompliant(false)]
public virtual string[][] GetUnknownRequestHeaders();
//
// Summary:
// Returns the virtual path to the requested URI.
//
// Returns:
// The path to the requested URI.
public abstract string GetUriPath();
//
// Summary:
// When overridden in a derived class, returns the context ID of the current
// connection.
//
// Returns:
// Always returns 0.
public virtual long GetUrlContextID();
//
// Summary:
// When overridden in a derived class, returns the client's impersonation token.
//
// Returns:
// A value representing the client's impersonation token. The default is 0.
public virtual IntPtr GetUserToken();
//
// Summary:
// Gets the impersonation token for the request virtual path.
//
// Returns:
// An unmanaged memory pointer for the token for the request virtual path.
public virtual IntPtr GetVirtualPathToken();
//
// Summary:
// Returns a value indicating whether the request contains body data.
//
// Returns:
// true if the request contains body data; otherwise, false.
public bool HasEntityBody();
//
// Summary:
// Returns a value indicating whether HTTP response headers have been sent to
// the client for the current request.
//
// Returns:
// true if HTTP response headers have been sent to the client; otherwise, false.
public virtual bool HeadersSent();
//
// Summary:
// Returns a value indicating whether the client connection is still active.
//
// Returns:
// true if the client connection is still active; otherwise, false.
public virtual bool IsClientConnected();
//
// Summary:
// Returns a value indicating whether all request data is available and no further
// reads from the client are required.
//
// Returns:
// true if all request data is available; otherwise, false.
public virtual bool IsEntireEntityBodyIsPreloaded();
//
// Summary:
// Returns a value indicating whether the connection uses SSL.
//
// Returns:
// true if the connection is an SSL connection; otherwise, false. The default
// is false.
public virtual bool IsSecure();
//
// Summary:
// Returns the physical path corresponding to the specified virtual path.
//
// Parameters:
// virtualPath:
// The virtual path.
//
// Returns:
// The physical path that corresponds to the virtual path specified in the virtualPath
// parameter.
public virtual string MapPath(string virtualPath);
//
// Summary:
// Reads request data from the client (when not preloaded).
//
// Parameters:
// buffer:
// The byte array to read data into.
//
// size:
// The maximum number of bytes to read.
//
// Returns:
// The number of bytes read.
public virtual int ReadEntityBody(byte[] buffer, int size);
//
// Summary:
// Reads request data from the client (when not preloaded) by using the specified
// buffer to read from, byte offset, and maximum bytes.
//
// Parameters:
// buffer:
// The byte array to read data into.
//
// offset:
// The byte offset at which to begin reading.
//
// size:
// The maximum number of bytes to read.
//
// Returns:
// The number of bytes read.
public virtual int ReadEntityBody(byte[] buffer, int offset, int size);
//
// Summary:
// Adds a Content-Length HTTP header to the response for message bodies that
// are less than or equal to 2 GB.
//
// Parameters:
// contentLength:
// The length of the response, in bytes.
public virtual void SendCalculatedContentLength(int contentLength);
//
// Summary:
// Adds a Content-Length HTTP header to the response for message bodies that
// are greater than 2 GB.
//
// Parameters:
// contentLength:
// The length of the response, in bytes.
public virtual void SendCalculatedContentLength(long contentLength);
//
// Summary:
// Adds a standard HTTP header to the response.
//
// Parameters:
// index:
// The header index. For example, System.Web.HttpWorkerRequest.HeaderContentLength.
//
// value:
// The value of the header.
public abstract void SendKnownResponseHeader(int index, string value);
//
// Summary:
// Adds the contents of the specified file to the response and specifies the
// starting position in the file and the number of bytes to send.
//
// Parameters:
// handle:
// The handle of the file to send.
//
// offset:
// The starting position in the file.
//
// length:
// The number of bytes to send.
public abstract void SendResponseFromFile(IntPtr handle, long offset, long length);
//
// Summary:
// Adds the contents of the specified file to the response and specifies the
// starting position in the file and the number of bytes to send.
//
// Parameters:
// filename:
// The name of the file to send.
//
// offset:
// The starting position in the file.
//
// length:
// The number of bytes to send.
public abstract void SendResponseFromFile(string filename, long offset, long length);
//
// Summary:
// Adds the specified number of bytes from a byte array to the response.
//
// Parameters:
// data:
// The byte array to send.
//
// length:
// The number of bytes to send, starting at the first byte.
public abstract void SendResponseFromMemory(byte[] data, int length);
//
// Summary:
// Adds the specified number of bytes from a block of memory to the response.
//
// Parameters:
// data:
// An unmanaged pointer to the block of memory.
//
// length:
// The number of bytes to send.
public virtual void SendResponseFromMemory(IntPtr data, int length);
//
// Summary:
// Specifies the HTTP status code and status description of the response, such
// as SendStatus(200, "Ok").
//
// Parameters:
// statusCode:
// The status code to send
//
// statusDescription:
// The status description to send.
public abstract void SendStatus(int statusCode, string statusDescription);
//
// Summary:
// Adds a nonstandard HTTP header to the response.
//
// Parameters:
// name:
// The name of the header to send.
//
// value:
// The value of the header.
public abstract void SendUnknownResponseHeader(string name, string value);
//
// Summary:
// Registers for an optional notification when all the response data is sent.
//
// Parameters:
// callback:
// The notification callback that is called when all data is sent (out-of-band).
//
// extraData:
// An additional parameter to the callback.
public virtual void SetEndOfSendNotification(HttpWorkerRequest.EndOfSendNotification callback, object extraData); // Summary:
// Represents the method that Notifies callers when sending of the response
// is complete.
//
// Parameters:
// wr:
// The current System.Web.HttpWorkerRequest.
//
// extraData:
// Any additional data needed to process the request.
public delegate void EndOfSendNotification(HttpWorkerRequest wr, object extraData);
}
}

该类是一个很底层的类,主要用于asp.net服务器内部,在一些特殊情况下,可以完成一些特殊的任务,比如,上传文件时,默认情况下,asp.net会将上传的文件内容读取到服务器的内存中,然后通过控件的方式供我们使用。这种在上传小文件的时候很方便,大文件的时候,服务器内存将出现问题,导致浏览器不能将文件继续传输。浏览器将显示“The page cannot be displayed -cannot find server or dns error.”,这个错误无法在服务器端进行捕获或者处理。

借助HttpWorkerRequest的GetPreloadedEntityBody和ReadEntityBody方法,我们可以自己分块从客户端读取上传的文件内容。然后将内容保存在一个临时文件中.

SlickUpload组件,就是基于这个实现的。感兴趣的可以看看这篇文章,如何使用该组件。

http://blog.csdn.net/zhoufoxcn/article/details/5765748

下载源码

http://slickupload.com/

工作者对象HttpWorkerRequest的更多相关文章

  1. 对象化的Http和请求对象HttpRequest

    在面向对象的语言中,有种“万物皆对象”的说法.在上篇文章中介绍了HttpRuntime类,在该类收到请求之后,立即通过HttpWorkerRequest工作者对象对传递的参数进行分析和分解,创建方便网 ...

  2. HttpRequest对象

    在面向对象的语言中,有种“万物皆对象”的说法.在上篇文章中介绍了HttpRuntime类,在该类收到请求之后,立即通过HttpWorkerRequest工作者对象对传递的参数进行分析和分解,创建方便网 ...

  3. NET那点不为人知的事

    ASP.NET那点不为人知的事(一)   我们上网时,在浏览器地址输入网址:Http://www.cnblogs.com,按下回车,一张网页就呈现在我们眼前.这究竟发生了什么?对于一名优秀的Progr ...

  4. 1.网站应用程序 - 《APS.NET本质论》

    1.1.HTTP协议 浏览器与WEB服务器的协议是应用层协议,当前遵循HTTP/1.1,HTTP协议是无状态的协议 客户机与服务器通过请求和响应完成一次会话(Session),每次会话中,双方发送的数 ...

  5. ASP.NET那点不为人知的事(一)

    http://www.cnblogs.com/OceanEyes/archive/2012/08/13/aspnetEssential-1.html#_label0 我们上网时,在浏览器地址输入网址: ...

  6. [Abp 源码分析]十六、后台作业与后台工作者

    0. 简介 在某些时候我们可能会需要执行后台任务,或者是执行一些周期性的任务.比如说可能每隔 1 个小时要清除某个临时文件夹内的数据,可能用户会要针对某一个用户群来群发一组短信.前面这些就是典型的应用 ...

  7. ASP.NET本质论第一章网站应用程序学习笔记2

    1.初步走进ASP.NET 上篇笔记我们讲述了服务器监听问题,这篇我们就要讲述具体的请求处理了,ASP.NET所涉及的类大多数定义在System.Web程序集中. 在.NET中,程序集管理的最小逻辑单 ...

  8. 【转】HttpRuntime的认识与加深理解

    原文:http://www.cnblogs.com/whtydn/archive/2009/10/16/1584418.html   下面最先介绍HttpRuntime的Web.config里的配置 ...

  9. ASP.NET底层与各个组件的初步认识与理解 (转载)

    ASP.NET底层的初步认识与理解   最近在国外的网站乱走一通,发现一些比较好的文章,收集整理加于自己的理解,作为笔记形式记录下来,让以后自己有个回忆. ASP.NET是一个非常强大的构建Web应用 ...

随机推荐

  1. Androd Studio layout页面布局无法预览

    Could not initialize class android.support.v7.internal.widget.ActionBarOverlayLayout 导致无法看到布局页面,解决方法 ...

  2. 各种python环境的问题

    [OS] mac [ERROR] decoder jpeg not available [SOLUTION] $ pip uninstall pillow $ brew install libjpeg ...

  3. Android四大布局及其主要属性

    布局: <LinearLayout></LinearLayout> <RelativeLayout></RelativeLayout> <Fram ...

  4. #Linux学习笔记# Linux在线帮助文档man page

    man是manual的简称,表示手册页.Linux系统的帮助手册页是按照章节(SECTION)来存储了.man手册页分为下面几个章节. 1 普通命令 2 内核提供的系统调用 3 库调用(C库函数) 4 ...

  5. nginx自学

    需要了解的linux的命令: linux的命令:netstat -antnetstat -antp(天假了参数P)ps aux | grep 80kill -9 2985 号进程pkill -9 ht ...

  6. [codevs 1306]广播操的游戏(Trie)

    题目:http://codevs.cn/problem/1306/ 分析:题意一看就知道就是要求Trie有多少个节点.但是如果每次单独取原串的所有子串加入Trie会超时,为什么呢?比方说AAABBBC ...

  7. margin的理解

    1.盒子模型 在进行网页设计的时候,我们使用的是盒子模型,其内容如下: 整个网页就是大盒子套小盒子,小盒子又套更小的盒子来实现的.但是在做网页设计时总是搞不清margin和padding的使用方式,在 ...

  8. [C#]exchange发送,收件箱操作类

    最近项目中需要用到exchange的操作,就参照msdn弄了一个简单的操作类.目前先实现了,发送邮件和拉取收件箱的功能,其他的以后在慢慢的添加. using Microsoft.Exchange.We ...

  9. NABCD模型需求分析

    仓库管理系统的NABCD模型 N-Need仓库管理是与我们日常生活息息相关的问题,随着改革开放的不断深入,经济飞速的发展,企业要想生存.发展,要想在激烈的市场竞争中立于不败之地,没有现代化的管理是万万 ...

  10. ansible 配置运行环境

    P34 2.3.1 配置ansible的环境 ansible的配置文件是以ini格式存储配置数据的,在ansible中几乎所有的配置都可以通过playbook或者环境变量来重新赋值 运行ansible ...