ASP.NETÖеÄHttpWorkerRequest¶ÔÏñ¼°ÆäÓ¦ÓÃ
HttpWorkerRequest¶ÔÏñÔÚASP.Net´¦ÀíÁ÷³ÌÖеÄλÖãº
ÿһ¸öASP.NET³ÌÐòÖ´ÐÐʱ¶¼»á¶Ôµ±Ç°URLµÄÇëÇó½øÐнâÎö£¬±¾ÎĽ«·ÖÎöASP.NETÒ³ÃæÇëÇóµÄÔÀí¡£µ±ÎÒÃÇÔÚä¯ÀÀÆ÷ÉÏÊäÈëÒ»¸öURLʱ£¬ Á÷³ÌÈçÏ£º
Ê×Ïȱ»WWW·þÎñÆ÷½Ø»ñ£¨inetinfo.exe½ø³Ì£©£¬ ¸Ã½ø³ÌÊ×ÏÈÅжÏÒ³Ãæºó׺£¬ È»ºó¸ù¾ÝIISÖÐÅäÖþö¶¨µ÷ÓþßÌåµÄÀ©Õ¹³ÌÐò¡£
Èçaspx¾Í»áµ÷ÓÃaspnet_isapi.dll, È»ºóÓÉaspnet_isapi.dll·¢Ë͸øw3wp.exe£¨iis ¹¤×÷Õß½ø³Ì£¬IIS6.0ÖнÐ×ö w3wq.exe£¬IIS5.0ÖнÐ×ö aspnet_wp.exe).
½ÓÏÂÀ´¾ÍÊÇw3wp.exeµ÷ÓÃ.netÀà¿â½øÐоßÌå´¦Àí£¬Á÷³ÌÈçÏ£º
ISAPIRuntime-->HttpRuntime-->HttpApplicationFactory-->HttpApplication-->HttpModule--HttpHandlerFactory-->HttpHandle
1. ISAPIRuntime
Ö÷Òª×÷ÓÃÊǵ÷ÓÃһЩ·ÇÍйܴúÂëÉú³ÉHttpWorkerRequest¶ÔÏó£¬HttpWorkerRequest¶ÔÏó°üº¬µ±Ç°ÇëÇóµÄËùÓÐÐÅÏ¢£¬È»ºó´«µÝ¸øHttpRuntime£¬ÕâÀïÉú³ÉµÄHttpWorkerRequest¶ÔÏó¿ÉÒÔÖ±½ÓÔÚÎÒÃǵÄÒ³ÃæÖе÷Óõģ¬Í¨¹ýËüÈ¡µÃÔʼµÄÇëÇóÐÅÏ¢£º
2. HttpRuntime
a. ¸ù¾ÝHttpWorkerRequest¶ÔÏóÉú³ÉHttpContext£¬HttpContext°üº¬request¡¢responseµÈÊôÐÔ£»
b. µ÷ÓÃHttpApplicationFactoryÀ´Éú³ÉIHttpHandler(ÕâÀïÉú³ÉµÄÊÇÒ»¸öĬÈϵÄHttpApplication¶ÔÏó£¬HttpApplicationÒ²ÊÇIHttpHandler½Ó¿ÚµÄÒ»¸öʵÏÖ)
c. µ÷ÓÃHttpApplication¶ÔÏóÖ´ÐÐÇëÇó
3. HttpApplicationFactory.
Ö÷ÒªÊÇÉú³ÉÒ»¸öHttpApplication¶ÔÏó£º
Ê×ÏÈ»á²é¿´ÊÇ·ñ´æÔÚglobal.asaxÎļþ£¬Èç¹ûÓеϰ¾ÍÓÃËüÀ´Éú³ÉHttpApplication¶ÔÏ󣬴ÓÕâÀïÎÒÃÇ¿ÉÒÔ¿´µ½global.asaxµÄÎļþÃûÊÇÔÚasp.netµÄ¿ò¼ÜÖÐдËÀµÄ£¬²»ÄÜÐ޸ĵġ£Èç¹ûÕâ¸öÎļþ²»´æÔÚ¾ÍʹÓÃĬÈϵĶÔÏó¡£
4. HttpApplication
Õâ¸öÊDZȽϸ´ÔÓÒ²±È½ÏÖØÒªµÄÒ»¸ö¶ÔÏó, Ê×ÏÈÊÇÖ´Ðгõʼ»¯²Ù×÷£¬±È½ÏÖØÒªµÄÒ»²½¾ÍÊǽøÐÐHttpModuleµÄ³õʼ»¯£º
HttpApplication´ú±í×ųÌÐòÔ±´´½¨µÄWebÓ¦ÓóÌÐò¡£HttpApplication´´½¨Õë¶Ô´ËHttpÇëÇóµÄ HttpContext¶ÔÏó£¬ÕâЩ¶ÔÏó°üº¬Á˹ØÓÚ´ËÇëÇóµÄÖî¶àÆäËû¶ÔÏó£¬Ö÷ÒªÊÇHttpRequest¡¢HttpResponse¡¢ HttpSessionStateµÈ¡£ÕâЩ¶ÔÏóÔÚ³ÌÐòÖпÉÒÔͨ¹ýPageÀà»òÕßContextÀà½øÐзÃÎÊ¡£
Ëü»á¶ÁÈ¡web.configÖÐËùÓÐHttpModuleµÄÅäÖÃ
5. HttpModule
6. HttpHandlerFactory
7. HttpHandler
HttpWorkerRequest µÄÓ¦ÓÃ
1. Using HttpWorkerRequest for getting headers
First, the HttpWorkerRequest class is used internally by ASP.NET, and provides a
Ïà¹ØÎĵµ£º
1¡¢.NetµÄHTTPÇëÇó
.NETÓëASPµÄÔËÐлúÖÆÓкܴó²»Í¬.
ASPµÄÇëÇóÓëÏìÓ¦ÊÇ,ASPÒ³Ãæ±»ÇëÇó,È»ºóÖðÐнâÊÍ.ÊÇ»ùÓÚ¹ý³ÌµÄ.×î¶àÊǰüº¬ÁËÎļþ,ÐèÒªÏÈÒýÈëÎļþ°ÕÁË.
¶ø.Net,ÔÚÒ³Ãæ±»ÇëÇóºó,Ê×ÏÈÊǼÓÔØHTTP Module,Õâ²»ÊDZ¾ÎĵÄÖØµã.È»ºóÔÙ¼ÓÔØHTTP
Handler.ÕâÒ²²»ÊDZ¾ÎĵÄÖØµã.¼ÓÔØµÄÕâÁ½Ïî,¶¼ÐèÒªÔÚWebconfigÎļþÖÐÅäÖÃ.´ó¼ÒÖªµÀ ......
ǰ¶Îʱ¼äÒòÎªÒ»ÌØ¶¨ÐèÇóдÁËÏÂÃæ´úÂë¡£ÐèÇóÈçÏ£ºÔÚÓû§·ÃÎʱ¾Õ¾ËùÓÐaspxÒ³ÃæÊ±£¬Ê×ÏÈÅжÏÓû§Session["login"]ÊÇ·ñ´æÔÚ£¬Èç¹û²»´æÔÚ£¬ËµÃ÷¸ÃÓû§Î´µÇ½£¬ÒªÈøÃÓû§Ìø×ªµ½Ö¸¶¨µÄÒ³Ãæ¡£ËùÒÔÏëдһ¸öSessionµÄ¹ýÂËÆ÷£¬Ë¼Ç°ÏëºóÓ¦¸Ãдһ¸ö¼Ì³ÐIHttpModuleµÄ´¦ÀíÀà¡£ÊÔÑéÁ˼¸ÖÖ·½Ê½·¢ÏÖÖ»Óн«·½·¨¼ÓÔÚ.AcquireRequestStateÖвŠ......
private
static
CacheItemRemovedCallback OnCacheRemove
=
null
;
protected
void
Application_Start(
object
sender, EventArgs e)
{
AddTask(
"
DoStuff
"
,
60
);
}
private
vo ......
1.¹ØÓÚ»º´æ
»º´æÉÏ£¬Êý¾Ý²ãÉϵĻº´æÊDZØÐëµÄ£¬Õâµã²»±Ø¶à˵ÁË¡£
ÁíÒ»¸öºÜÖØÒªµÄÊÇ£ºÊÓͼƬ¶Î»º´æ¡£
ÎҲο¼ÁËÀÏÕÔµÄдµÄÈýƪ¹ØÓÚÆ¬¶Î»º´æµÄÎÄÕ£º
ÊʺÏASP.NET MVCµÄÊÓͼƬ¶Ï»º´æ·½Ê½£¨ÉÏ£©£ºÆð²½
ÊʺÏASP.NET MVCµÄÊÓͼƬ¶Ï»º´æ·½Ê½£¨ÖУ©£º¸üʵÓõÄAPI
ÊʺÏASP.NET MVCµÄÊÓͼƬ¶Ï»º´æ·½Ê½£¨Ï£©£ºÒ³ÃæÊä³öÔÔò
± ......
ASP.NETÖеÄEval£¨£©ºÍDataBinder.Eval£¨£©·½·¨
2009-12-12 17:55
Eval( " ")ºÍBind( " ")¡¡ÕâÁ½ÖÖÒ»¸öµ¥Ïò°ó¶¨£¬Ò»¸öË«Ïò°ó¶¨
bindÊÇË«Ïò°ó¶¨,µ«ÐèÊý¾ÝÔ´¿É¸ü¸Ä²ÅÄÜÓÃ
ASP.NET 2.0¸ÄÉÆÁËÄ£°åÖеÄÊý¾Ý°ó¶¨²Ù×÷£¬°Ñv1.xÖеÄÊý¾Ý°ó¶¨Óï·¨DataBinder.Eval(Container.DataItem, fieldname)¼ò»¯ÎªEval(fieldname)¡£Eval·½· ......