Yeah, you're totally right.  As I sat at lunch I realized it was a dumb
question.  Since this is by request, each request is on a thread and a
thread can only do 1 thing at a time so request 1 HAS to finish before
request 2 (assuming they are on the same thread).  

Thanks so much for your patience and your help!

-----Original Message-----
From: Ron Grabowski [mailto:[EMAIL PROTECTED] 
Sent: Thursday, February 10, 2005 12:04 PM
To: Log4NET User
Subject: RE: Logging in a Web App (Threads, Sessions and Requests)


I think you're getting confused with HttpHandlers. There is a member of
the IHttpHandler interface called IsResulable which says:

"
Gets a value indicating whether another request can use the
System.Web.IHttpHandler instance.  
"

I believe that each request gets its own HttpModule. That's why
HttpApplication is passed into the Init function. Every request has its
own context. If I put something into request1's context, I don't have
access to that item from request2.

--- "Hart, Leo" <[EMAIL PROTECTED]> wrote:

> Oh, I get it now!  The "MyAuthenticateRequest" name woke me up.
> Thanks!
> 
> A question: what happens in the following situation:
> 
>       There are two requests on the same thread.
> 
>       Request1 starts
>       log4net.MDC.Set("sessionID", mContext.Session().SessionID) is
called 
> in my HttpModule
>       Some logging for Request1 occurs
>       Request2 starts
>       log4net.MDC.Set("sessionID", mContext.Session().SessionID) is
called 
> in my HttpModule
>       Some logging for Request2 occurs
>       Some logging for Request1 occurs
>       Request1 ends
>       Request2 ends
> 
> Once that second MDC.Set is called, won't all of my logging for 
> Request1 be written with Request2's sessionID?  Since a web app is
> multi-threaded, I cannot guarantee that Request1 will finish before
> Request2  application, can I?

Reply via email to