Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsFree MagazinesWhite PapersSubmit Content
Discussion GroupsASP.NETWindows FormsLanguages.NET FrameworkVisual Studio.NET
Articles.NET FrameworkASP.NETToolsWindows Forms
.NET DirectoryOpen Source ProjectsUser GroupsWeb Resources
Related Topics
Visual Basic 6SQL ServerMS AccessOther DB ProductsMS Server ProductsMore Topics ...

.NET Forum / ASP.NET / General / June 2007

Tip: Looking for answers? Try searching our database.

logging all HTTP requests

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Andy Fish - 07 Jun 2007 09:50 GMT
Hi,

I am wondering if there is any way to log the HTTP traffic on an IIS server
(including headers but preferably the body as well), either at the IIS or
asp.net level

I know I could write my own isapi dll or .net filter, but I was rather
hoping someone else has already done it. I'm sure it's quite a common
requirement

Andy
Alexey Smirnov - 07 Jun 2007 10:09 GMT
> Hi,
>
> I am wondering if there is any way to log the HTTP traffic on an IIS server
> (including headers

What about IIS log?
Andy Fish - 07 Jun 2007 10:39 GMT
>> Hi,
>>
[quoted text clipped - 3 lines]
>
> What about IIS log?

do you mean the standard log file which appears automatically in the
windows/system32 (WTF !?!) directory?. Yes, this logs some information but I
need access to at lest all the HTTP headers in both directions and
preferably the body too
Andrew Morton - 07 Jun 2007 10:36 GMT
> I am wondering if there is any way to log the HTTP traffic on an IIS
> server (including headers but preferably the body as well), either at
[quoted text clipped - 3 lines]
> hoping someone else has already done it. I'm sure it's quite a common
> requirement

Wireshark (formerly Ethereal)?

Andrew
Michael Nemtsev - 07 Jun 2007 11:04 GMT
Hello Andy,

I think that you need to implement HttpModule which will just log all request
to the desired location
Start from here http://www.15seconds.com/issue/020417.htm

---
WBR,  Michael  Nemtsev [.NET/C# MVP].  
My blog: http://spaces.live.com/laflour
Team blog: http://devkids.blogspot.com/

"The greatest danger for most of us is not that our aim is too high and we
miss it, but that it is too low and we reach it" (c) Michelangelo

AF> Hi,
AF>
AF> I am wondering if there is any way to log the HTTP traffic on an IIS
AF> server (including headers but preferably the body as well), either
AF> at the IIS or asp.net level
AF>
AF> I know I could write my own isapi dll or .net filter, but I was
AF> rather hoping someone else has already done it. I'm sure it's quite
AF> a common requirement
AF>
AF> Andy
AF>
Ken Schaefer - 07 Jun 2007 12:13 GMT
HTTPModule is only invoked once request is handed off to ASP.NET ISAPI
extension:

http.sys -> IIS pipeline -> determine extension -> ASP.NET ISAPI
extension -> ASP.NET pipeline

Requests for static files, for example, are handled by IIS Static file
handler, not ASP.NET, so HTTPModule would never be invoked (unless you map
all file extensions to ASP.NET)

ISAPI filter (or lower level tool, e.g. a packet capture tool) is probably
the only way.

Cheers
Ken

Signature

My IIS Blog: www.adOpenStatic.com/cs/blogs/ken

> Hello Andy,
>
[quoted text clipped - 20 lines]
> AF> AF> Andy
> AF>
Michael Nemtsev - 07 Jun 2007 12:25 GMT
Hello Ken,

hmmm..
What about IIS7? The same ISAPI stuff?

---
WBR,  Michael  Nemtsev [.NET/C# MVP].  
My blog: http://spaces.live.com/laflour
Team blog: http://devkids.blogspot.com/

"The greatest danger for most of us is not that our aim is too high and we
miss it, but that it is too low and we reach it" (c) Michelangelo

KS> HTTPModule is only invoked once request is handed off to ASP.NET
KS> ISAPI extension:
KS>
KS> http.sys -> IIS pipeline -> determine extension -> ASP.NET ISAPI
KS> extension -> ASP.NET pipeline
KS>
KS> Requests for static files, for example, are handled by IIS Static
KS> file handler, not ASP.NET, so HTTPModule would never be invoked
KS> (unless you map all file extensions to ASP.NET)
KS>
KS> ISAPI filter (or lower level tool, e.g. a packet capture tool) is
KS> probably the only way.
KS>
KS> Cheers
KS> Ken
KS> "Michael Nemtsev" <nemtsev@msn.com> wrote in message
KS> news:a279a63a3f646f8c97723d97cb3f6@msnews.microsoft.com...
KS>
>> Hello Andy,
>>
[quoted text clipped - 23 lines]
>> AF> AF> Andy
>> AF>
David Wang - 07 Jun 2007 13:30 GMT
Products like TeaLeaf do what was originally asked and exist.

If you are looking for a free solution, I don't know of any.

For the theoretically inclined:

IIS6 Request Processing Details:
http://blogs.msdn.com/david.wang/archive/2005/10/14/HOWTO_IIS_6_Request_Processi
ng_Basics_Part_1.aspx


IIS6 solutions involve any combination of the following techniques:
- How to read request entity body -
http://blogs.msdn.com/david.wang/archive/2006/05/10/HOWTO-Access-POST-form-data-
with-ISAPI.aspx

- ISAPI Filter reading ALL_RAW ServerVariable after
SF_NOTIFY_AUTH_COMPLETE event to retrieve effective request headers
- ISAPI Filter listening to SF_NOTIFY_SEND_RAW_DATA to capture
response stream. Kills performance by disabling platform advantages
like TransmitFile for StaticFiles and kernel response cache for
Dynamic Files.

IIS7 solutions
- Existing IIS6 solution works with same caveats
- Native code Module listening on READ_ENTITY and SEND_ENTITY to
buffer
- Existing HttpModule and HttpHandler techniques can be applied to any/
all resources on a per-app basis (CANNOT configure one codebase to run
globally for any/all requests - read this for why -
http://blogs.msdn.com/david.wang/archive/2005/09/13/Why-Global-Managed-Modules-a
re-Disallowed-in-IIS7.aspx

)

//David
http://w3-4u.blogspot.com
http://blogs.msdn.com/David.Wang
//

> Hello Ken,
>
[quoted text clipped - 57 lines]
>
> - Show quoted text -
Andy Fish - 07 Jun 2007 13:23 GMT
Thanks for all the replies

I have read up a bit about the asp.net pipeline and, as I am currently only
interested in asp.net requests, I think IHttpModule will do it for me.

I was just hoping that someone had already invented this so I wouldn't have
to write it myself, but it doesn't look like it's available off the shelf. I
would think it's a common requirement.

I have previously tried ethereal and the other obvious alternative which is
a proxy with logging. these are just a bit more cumbersome to use than
having logging built into the web server.

Andy

> HTTPModule is only invoked once request is handed off to ASP.NET ISAPI
> extension:
[quoted text clipped - 36 lines]
>> AF> AF> Andy
>> AF>
Michael Nemtsev - 07 Jun 2007 11:05 GMT
Hello Andy,

I'd recommend this article http://msdn.microsoft.com/msdnmag/issues/02/08/HTTPFilters/default.aspx 
to my previous post

---
WBR,  Michael  Nemtsev [.NET/C# MVP].  
My blog: http://spaces.live.com/laflour
Team blog: http://devkids.blogspot.com/

"The greatest danger for most of us is not that our aim is too high and we
miss it, but that it is too low and we reach it" (c) Michelangelo

AF> Hi,
AF>
AF> I am wondering if there is any way to log the HTTP traffic on an IIS
AF> server (including headers but preferably the body as well), either
AF> at the IIS or asp.net level
AF>
AF> I know I could write my own isapi dll or .net filter, but I was
AF> rather hoping someone else has already done it. I'm sure it's quite
AF> a common requirement
AF>
AF> Andy
AF>

Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.