黑马程序员技术交流社区

标题: 关于ECB句柄 [打印本页]

作者: 转达小朋友    时间: 2013-6-8 23:46
标题: 关于ECB句柄
aspnet_isapi.dll 向ISAPIRuntime.ProcessRequest传递数据时 用的是ECB句柄 ,第一次接触ECB不是很明白  ECB是指针吗??
求得道高僧点化。。
作者: 无__畏    时间: 2013-6-9 19:51
本帖最后由 无__畏 于 2013-6-9 20:44 编辑

研究生命周期的吧?这个不用重点关心,你要娶研究ECB的话,那你就跑远了! 它只是定义了个类型叫ecb
  1. [SecurityPermission(SecurityAction.LinkDemand, Unrestricted=true)]
  2. public int ProcessRequest(IntPtr ecb, int iWRType)
  3. {
  4.     IntPtr zero = IntPtr.Zero;
  5.     if (iWRType == 2)
  6.     {
  7.         zero = ecb;
  8.         ecb = UnsafeNativeMethods.GetEcb(zero);
  9.     }
  10.     ISAPIWorkerRequest wr = null;
  11.     try
  12.     {
  13.         bool useOOP = iWRType == 1;
  14.         wr = ISAPIWorkerRequest.CreateWorkerRequest(ecb, useOOP);
  15.         wr.Initialize();
  16.         string appPathTranslated = wr.GetAppPathTranslated();
  17.         string appDomainAppPathInternal = HttpRuntime.AppDomainAppPathInternal;
  18.         if ((appDomainAppPathInternal == null) || StringUtil.EqualsIgnoreCase(appPathTranslated, appDomainAppPathInternal))
  19.         {
  20.             HttpRuntime.ProcessRequestNoDemand(wr);
  21.             return 0;
  22.         }
  23.         HttpRuntime.ShutdownAppDomain(ApplicationShutdownReason.PhysicalApplicationPathChanged, SR.GetString("Hosting_Phys_Path_Changed", new object[] { appDomainAppPathInternal, appPathTranslated }));
  24.         return 1;
  25.     }
  26.     catch (Exception exception)
  27.     {
  28.         try
  29.         {
  30.             WebBaseEvent.RaiseRuntimeError(exception, this);
  31.         }
  32.         catch
  33.         {
  34.         }
  35.         if ((wr == null) || !(wr.Ecb == IntPtr.Zero))
  36.         {
  37.             throw;
  38.         }
  39.         if (zero != IntPtr.Zero)
  40.         {
  41.             UnsafeNativeMethods.SetDoneWithSessionCalled(zero);
  42.         }
  43.         if (exception is ThreadAbortException)
  44.         {
  45.             Thread.ResetAbort();
  46.         }
  47.         return 0;
  48.     }
  49. }


复制代码

作者: 转达小朋友    时间: 2013-6-9 20:43
无__畏 发表于 2013-6-9 19:51
研究生命周期的吧?这个不用重点关心,你要娶研究ECB的话,那你就跑远了! 它只是定义了个类型叫ecb
...

只是想了解下,,我想多了啊




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2