Dear All,

Very Very Thanks To:

Erich Eichinger <[EMAIL PROTECTED]>
Ron Grabowski <[EMAIL PROTECTED]>

My "Problem" has been fixed !

Very Thanks!

If I have other problem i will come here again.See everybody!~

On 5/29/07, Erich Eichinger <[EMAIL PROTECTED]> wrote:

 Hi,

Ron is right for sure. Session_End is fired asynchronously on a separate
thread in case of a session-timeout. In this case a special HttpApplication
instance is constructed to process the Session_End event.

In short: Instead of accessing HttpContext.Current.Session in your
Session_End() eventhandler, you should write

        protected void Session_End(Object sender, EventArgs e)

          {

            XXXXXX.CommonUtil.Log("Session_End:"+ this.Session.SessionID);
// note "this.Session" instead of "HttpContext.Current.Session" !

          }

and everything should work as you expect.

hope this helps,
Erich

 ------------------------------
*From:* 刘志军 [mailto:[EMAIL PROTECTED]
*Sent:* Tuesday, May 29, 2007 7:05 AM
*To:* Log4NET User
*Subject:* Re: Log4Net Can Not Log Message When AppDomain Unload , Why?

Perhaps you are right.
But I know the httpcontent was build every time whena request is comming.
when the Session_End fired , why the log component can not work propertyly
?



On 5/29/07, Ron Grabowski <[EMAIL PROTECTED]> wrote:
>
> I bet HttpContext.Current is null. If a user closes their browser their
> session is still active on the server (usually for 20 minutes). When the
> Session_End event fires there is no HttpContext.Current (i.e. there
> isn't a Request or a Response).
>
>
>
> ----- Original Message ----
>
> From: 刘志军 <[EMAIL PROTECTED]>
>
> To: [email protected]
>
> Sent: Monday, May 28, 2007 10:19:21 PM
>
> Subject: Log4Net Can Not Log Message When AppDomain Unload , Why?
>
>
>
> Hi everyone,
>
>
>
> Details:
>
>
>
> I used Log4Net for Asp.Net Application under version 1.1.4322.
>
>
>
>   I want to log the Session_End event in the Global Class by the command
> line "iisreset".
>
>
>
> but the infomation can not be loged.
>
>
>
> In the another , the Session_Start event information can be loged
> correctly.
>
>
>
> below is the code:
>
>
>
> using System;
>
> using System.Collections;
>
>   using System.ComponentModel;
>
> using System.Web;
>
> using  System.Web.SessionState;
>
>
>
> namespace XXXX.XXXX.Web
>
>   {
>
>     /// <summary>
>
>     /// Summary description for Global.
>
>     /// </summary>
>
>     public class Global :  System.Web.HttpApplication
>
>     {
>
>         /// <summary>
>
>           /// Required designer variable.
>
>         /// </summary>
>
>           private System.ComponentModel.IContainer components = null;
>
>
>
>           public Global()
>
>         {
>
>             InitializeComponent();
>
>         }
>
>
>
>           protected void Application_Start(Object sender, EventArgs e)
>
>         {
>
>
>
>         }
>
>
>
>           protected void Session_Start(Object sender, EventArgs e)
>
>         {
>
>               XXXXXX.CommonUtil.Log
> ("Session_Start:"+HttpContext.Current.Session.SessionID);
>
>         }
>
>
>
>         protected void Application_BeginRequest(Object sender, EventArgs
> e)
>
>           {
>
>         }
>
>
>
>           protected void Application_EndRequest(Object sender, EventArgs
> e)
>
>         {
>
>           }
>
>
>
>         protected void Application_AuthenticateRequest(Object sender,
> EventArgs e)
>
>         {
>
>
>
>         }
>
>
>
>         protected void Application_Error(Object sender, EventArgs e)
>
>           {
>
>
>
>         }
>
>
>
>         protected void Session_End(Object sender, EventArgs e)
>
>           {
>
>             XXXXXX.CommonUtil.Log
> ("Session_End:"+HttpContext.Current.Session.SessionID);
>
>           }
>
>
>
>         protected void Application_End(Object sender, EventArgs e)
>
>         {
>
>
>
>         }
>
>
>
>         #region Web Form Designer generated code
>
>         /// <summary>
>
>         /// Required method for Designer support - do not modify
>
>         /// the contents of this method with the code editor.
>
>           /// </summary>
>
>         private void InitializeComponent()
>
>           {
>
>             this.components = new System.ComponentModel.Container ();
>
>           }
>
>         #endregion
>
>     }
>
>   }
>
>
>
>
>
>
>
> Can some one give me some help ?
>
>
>
>
>
>
>
>
>
>

Reply via email to