Visual C# .NETÀ» »ç¿ëÇÏ¿© ASP.NET HTTP ¸ðµâÀ» ¸¸µå´Â ¹æ¹ý

±â¼ú ÀÚ·á: 307996 - ÀÌ ¹®¼­°¡ Àû¿ëµÇ´Â Á¦Ç° º¸±â.
ÀÌ ¹®¼­´Â ÀÌÀü¿¡ ´ÙÀ½ ID·Î ÃâÆÇµÇ¾úÀ½: KR307996
¸ðµÎ È®´ë | ¸ðµÎ Ãà¼Ò

ÀÌ ÆäÀÌÁö¿¡¼­

ÀÌ ¹®¼­¿¡¼­´Â Visual C# .NETÀ» »ç¿ëÇÏ¿© °£´ÜÇÑ »ç¿ëÀÚ ÁöÁ¤ HTTP ¸ðµâÀ» ¸¸µå´Â ¹æ¹ýÀ» ´Ü°èº°·Î º¸¿©ÁÝ´Ï´Ù. ¶ÇÇÑ ¸ðµâÀ» ¸¸µé°í ±¸Ãà ¹× ±¸¼ºÇÏ´Â ¹æ¹ýÀº ¹°·Ð Global.asax ÆÄÀÏ¿¡¼­ ¸ðµâÀÇ À̺¥Æ®¸¦ ¿¬°áÇÏ´Â ¹æ¹ýµµ º¸¿©ÁÝ´Ï´Ù.

Ãß°¡ Á¤º¸

¸ðµâ ±¸Çö

  1. MyModuleÀ̶ó´Â »õ Visual Studio .NET C# Ŭ·¡½º ¶óÀ̺귯¸® ÇÁ·ÎÁ§Æ®¸¦ ¸¸µì´Ï´Ù.
  2. ÂüÁ¶¸¦ System.Web.dll ¾î¼Àºí¸®·Î ¼³Á¤ÇÕ´Ï´Ù.
  3. Ŭ·¡½º¿¡ ´ÙÀ½ Áö½Ã¹®À» Ãß°¡ÇÕ´Ï´Ù.
    using System.Web;					
  4. SyncModule.cs Ŭ·¡½ºÀÇ À̸§À» ¹Ù²Û ´ÙÀ½ »õ À̸§À» ¹Ý¿µÇϵµ·Ï Ŭ·¡½º Á¤ÀǸ¦ º¯°æÇÕ´Ï´Ù.
  5. IHttpModule ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÕ´Ï´Ù. Ŭ·¡½º Á¤ÀÇ´Â ´ÙÀ½°ú °°ÀÌ ³ªÅ¸³ª¾ß ÇÕ´Ï´Ù.
    public class SyncModule : IHttpModule					
  6. ¾î¶² À̺¥Æ®¸¦ µî·ÏÇÒ °ÍÀÎÁö °áÁ¤ÇÕ´Ï´Ù. ´ÙÀ½Àº »ç¿ëÀÚ°¡ µî·ÏÇÒ ¼ö ÀÖ´Â HttpApplication °³Ã¼¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Â À̺¥Æ®¿¡ ´ëÇÑ ¼³¸íÀÔ´Ï´Ù.
    • AcquireRequestState: ¸ðµâÀÌ ¿äû »óÅÂ(¿¹: ¼¼¼Ç)¸¦ ¾ò°Å³ª ¸¸µé ¼ö ÀÖµµ·Ï ÇÏ·Á¸é ÀÌ À̺¥Æ®¸¦ È£ÃâÇÕ´Ï´Ù.
    • AuthenticateRequest: º¸¾È ¸ðµâÀÌ ¿äûÀ» ó¸®Çϱâ Àü¿¡ »ç¿ëÀÚ¸¦ ÀÎÁõÇØ¾ß ÇÒ °æ¿ì ÀÌ À̺¥Æ®¸¦ È£ÃâÇÕ´Ï´Ù.
    • AuthorizeRequest: º¸¾È ¸ðµâÀÌ ¿äûÀ» ÀÎÁõÇØ¾ß ÇÒ °æ¿ì ÀÌ À̺¥Æ®¸¦ È£ÃâÇÕ´Ï´Ù. ÀÎÁõ ÈÄ¿¡ È£ÃâµË´Ï´Ù.
    • BeginRequest: »õ·Î¿î ¿äûÀÌ ½ÃÀÛµÊÀ» ¸ðµâ¿¡ ¾Ë¸®·Á¸é ÀÌ À̺¥Æ®¸¦ È£ÃâÇÕ´Ï´Ù.
    • Disposed: ¾î¶² ÀÌÀ¯·Î ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ Á¾·áµÊÀ» ¸ðµâ¿¡ ¾Ë¸®·Á¸é ÀÌ À̺¥Æ®¸¦ È£ÃâÇÕ´Ï´Ù. ¸ðµâÀÌ ³»ºÎ Á¤¸®¸¦ ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.
    • EndRequest: ¿äûÀÌ Á¾·áµÊÀ» ¸ðµâ¿¡ ¾Ë¸®·Á¸é ÀÌ À̺¥Æ®¸¦ È£ÃâÇÕ´Ï´Ù.
    • Error: ¿äûÀ» ó¸®ÇÏ´Â µ¿¾È ¹ß»ýÇÑ ¿À·ù¸¦ ¸ðµâ¿¡ ¾Ë¸®·Á¸é ÀÌ À̺¥Æ®¸¦ È£ÃâÇÕ´Ï´Ù.
    • PostRequestHandlerExecute: 󸮱Ⱑ ¿äû 󸮸¦ ¸¶ÃÆÀ½À» ¸ðµâ¿¡ ¾Ë¸®·Á¸é ÀÌ À̺¥Æ®¸¦ È£ÃâÇÕ´Ï´Ù.
    • PreRequestHandlerExecute: ¿äû 󸮱Ⱑ È£ÃâµÊÀ» ¸ðµâ¿¡ ¾Ë¸®·Á¸é ÀÌ À̺¥Æ®¸¦ È£ÃâÇÕ´Ï´Ù.
    • PreSendRequestContent: ÄÜÅÙÃ÷¸¦ Ŭ¶óÀÌ¾ðÆ®¿¡ º¸³¿À» ¸ðµâ¿¡ ¾Ë¸®·Á¸é ÀÌ À̺¥Æ®¸¦ È£ÃâÇÕ´Ï´Ù.
    • PreSendRequestHeaders: HTTP Çì´õ¸¦ Ŭ¶óÀÌ¾ðÆ®¿¡ º¸³¿À» ¸ðµâ¿¡ ¾Ë¸®·Á¸é ÀÌ À̺¥Æ®¸¦ È£ÃâÇÕ´Ï´Ù.
    • ReleaseRequestState: 󸮱Ⱑ ¿äû 󸮸¦ ¸¶ÃƱ⠶§¹®¿¡ ¸ðµâÀÌ »óŸ¦ ÇØÁ¦ÇÒ ¼ö ÀÖµµ·Ï ÇÏ·Á¸é ÀÌ À̺¥Æ®¸¦ È£ÃâÇÕ´Ï´Ù.
    • ResolveRequestCache: ÀÎÁõ ÈÄ¿¡ ÀÌ À̺¥Æ®¸¦ È£ÃâÇÕ´Ï´Ù. ij½Ì ¸ðµâÀº ij½Ã°¡ ¿äûÀ» ó¸®ÇØ¾ß ÇÏ´ÂÁö, 󸮱Ⱑ ¿äûÀ» ó¸®ÇØ¾ß ÇÏ´ÂÁö È®ÀÎÇϱâ À§ÇØ ÀÌ À̺¥Æ®¸¦ »ç¿ëÇÕ´Ï´Ù.
    • UpdateRequestCache: 󸮱⿡¼­ ÀÀ´äÇÑ ÈÄ¿¡ ÀÌ À̺¥Æ®¸¦ È£ÃâÇÕ´Ï´Ù. ij½Ì ¸ðµâÀº ÀÀ´äÀ» »ç¿ëÇÏ¿© ij½Ã¸¦ ¾÷µ¥ÀÌÆ®ÇØ¾ß ÇÕ´Ï´Ù.
    ÀÌ ¿¹Á¦¿¡¼­´Â BeginRequest À̺¥Æ®¸¦ »ç¿ëÇÕ´Ï´Ù.
  7. ´ÙÀ½°ú °°ÀÌ IHttpModule ÀÎÅÍÆäÀ̽ºÀÇ Init ¹× Dispose ¸Þ¼­µå¸¦ ±¸ÇöÇÕ´Ï´Ù.
    public void Init(HttpApplication app)
    {
       app.BeginRequest += new EventHandler(OnBeginRequest);
    }
    
    public void Dispose(){ }					
  8. ´ÙÀ½°ú °°ÀÌ À̺¥Æ® À§ÀÓÀ» ¸¸µì´Ï´Ù.
    public delegate void MyEventHandler(Object s, EventArgs e);					
  9. ´ÙÀ½°ú °°ÀÌ MyEventHandler Çü½ÄÀÇ °³ÀÎ ·ÎÄà º¯¼ö¸¦ Á¤ÀÇÇÏ¿© À̺¥Æ®¿¡ ÂüÁ¶¸¦ ÀúÀåÇÕ´Ï´Ù.
    private MyEventHandler _eventHandler = null;					
  10. ´ÙÀ½°ú °°ÀÌ HttpApplication °³Ã¼¿¡¼­ »ó¼ÓÇÏ´Â Global.asax ÆÄÀÏÀ̳ª Ŭ·¡½º¿¡ ÀÖ´Â ¸Þ¼­µå¿¡ À§ÀÓÀ» ¿¬°áÇÏ´Â À̺¥Æ®¸¦ ¸¸µì´Ï´Ù.
    public event MyEventHandler MyEvent
    {
       add { _eventHandler += value; }
       remove { _eventHandler -= value; }
    }					
  11. ´ÙÀ½°ú °°ÀÌ HttpApplicationÀÇ BeginRequest À̺¥Æ®¿¡ ¿¬°áÇÏ´Â OnBeginRequest ¸Þ¼­µå¸¦ ¸¸µì´Ï´Ù.
    public void OnBeginRequest(Object s, EventArgs e)
    {
       HttpApplication app = s as HttpApplication;
       app.Context.Response.Write("Hello from OnBeginRequest in custom module.<br>");
       if(_eventHandler!=null)
          _eventHandler(this, null);
    }					
  12. ÇÁ·ÎÁ§Æ®¸¦ ÄÄÆÄÀÏÇÕ´Ï´Ù.

¸ðµâ ±¸Ãà

  1. C:\Inetpub\Wwwroot ¾Æ·¡¿¡ ModuleÀ̶ó´Â µð·ºÅ͸®¸¦ »õ·Î ¸¸µì´Ï´Ù.
  2. »õ·Î ¸¸µç Module µð·ºÅ͸®¿¡ BinÀ̶ó´Â ÇÏÀ§ µð·ºÅ͸®¸¦ ¸¸µì´Ï´Ù. °æ·Î´Â C:\Inetpub\Wwwroot\Module\BinÀÔ´Ï´Ù.
  3. MyModule.dllÀ» ÇÁ·ÎÁ§Æ®ÀÇ Bin\Debug µð·ºÅ͸®¿¡¼­ C:\Inetpub\Wwwroot\Module\Bin µð·ºÅ͸®·Î º¹»çÇÕ´Ï´Ù.
  4. ´ÙÀ½ ÀýÂ÷¿¡ µû¶ó »õ Module µð·ºÅ͸®¸¦ À¥ ÀÀ¿ë ÇÁ·Î±×·¥À¸·Î Ç¥½ÃÇÕ´Ï´Ù.
    1. ÀÎÅÍ³Ý ¼­ºñ½º °ü¸®ÀÚ¸¦ ¿±´Ï´Ù.
    2. Module µð·ºÅ͸®¸¦ ¸¶¿ì½º ¿À¸¥ÂÊ ´ÜÃß·Î ´©¸¥ ´ÙÀ½ ¼Ó¼ºÀ» ´©¸¨´Ï´Ù.
    3. µð·ºÅ͸® ÅÇ¿¡¼­ ¸¸µé±â¸¦ ´©¸¨´Ï´Ù.
    4. È®ÀÎÀ» ´­·¯ ¸ðµâ ¼Ó¼º ´ëÈ­ »óÀÚ¸¦ ´Ý½À´Ï´Ù.

½Ã½ºÅÛ ±¸¼º

  1. C:\Inetpub\Wwwroot\Module\ µð·ºÅ͸®¿¡¼­ Web.config ÆÄÀÏÀ» »õ·Î ¸¸µì´Ï´Ù.
  2. Web.config¿¡ ´ÙÀ½ ÅØ½ºÆ®¸¦ ºÙ¿© ³Ö½À´Ï´Ù.
    <configuration>
       <system.web>
          <httpModules>
             <add name="MyModule" type="MyModule.SyncModule, MyModule" />
          </httpModules>
       </system.web>
    </configuration>					

¸ðµâ Å×½ºÆ®

  1. C:\Inetpub\Wwwroot\Module µð·ºÅ͸®¿¡¼­ Test.aspx ÆÄÀÏÀ» »õ·Î ¸¸µì´Ï´Ù.
  2. Test.aspx¿¡ ´ÙÀ½ ÅØ½ºÆ®¸¦ ºÙ¿© ³Ö½À´Ï´Ù.
    <%@Page Language="C#"%>
    <% Response.Write("Hello from Test.aspx.<br>"); %>					
  3. C:\Inetpub\Wwwroot\Module µð·ºÅ͸®¿¡¼­ Global.asax ÆÄÀÏÀ» ¸¸µì´Ï´Ù.
  4. Global.asax¿¡ ´ÙÀ½ Äڵ带 ºÙ¿© ³Ö½À´Ï´Ù.
    <%@ Import Namespace="MyModule" %>
    
    <script language="C#" runat=server >
    protected void MyModule_OnMyEvent(Object src, EventArgs e)
    {	
      Context.Response.Write("Hello from MyModule_OnMyEvent called in Global.asax.<br>");
    }
    </script>					
  5. Test.aspx ÆäÀÌÁö¸¦ ¿äûÇÕ´Ï´Ù. ´ÙÀ½ ÅØ½ºÆ®°¡ ³ªÅ¸³ª¾ß ÇÕ´Ï´Ù.
    Hello from OnBeginRequest in custom module.
    Hello from MyModule_OnMyEvent called in Global.asax.
    Hello from Test.aspx.					

ÂüÁ¶

HTTP 󸮱⿡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº Microsoft ±â¼ú ÀÚ·áÀÇ ´ÙÀ½ ¹®¼­¸¦ ÂüÁ¶ÇϽʽÿÀ.
307985 INFO: ASP.NET HTTP ¸ðµâ ¹× HTTP 󸮱⠰³¿ä





Microsoft Á¦Ç° °ü·Ã ±â¼ú Àü¹®°¡µé°ú ¿Â¶óÀÎÀ¸·Î Á¤º¸¸¦ ±³È¯ÇϽ÷Á¸é Microsoft ´º½º ±×·ì¿¡ Âü¿©ÇϽñ⠹ٶø´Ï´Ù.

¼Ó¼º

±â¼ú ÀÚ·á: 307996 - ¸¶Áö¸· °ËÅä: 2006³â 2¿ù 17ÀÏ ±Ý¿äÀÏ - ¼öÁ¤: 3.5
º» ¹®¼­ÀÇ Á¤º¸´Â ´ÙÀ½ÀÇ Á¦Ç°¿¡ Àû¿ëµË´Ï´Ù.
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
Ű¿öµå:?
kbconfig kbhowtomaster kbhttpmodule kbhttpruntime kbweb KB307996

Çǵå¹é º¸³»±â