Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 90701
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 10, 20262026-05-10T22:54:52+00:00 2026-05-10T22:54:52+00:00

How do I best capture the HTML (in my instance, for logging) rendered by

  • 0

How do I best capture the HTML (in my instance, for logging) rendered by an aspx-page?

I dont want to have to write back to the page using Response.Write, since it messes up my site layout.

Using the Response.OutputStream or Response.Output’s stream results in an ArgumentException ({System.ArgumentException: Stream was not readable.)

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. 2026-05-10T22:54:52+00:00Added an answer on May 10, 2026 at 10:54 pm

    Good question, i had to try out and see if i could create a HttpModule to do what you are describing.

    I didnt have any luck trying to read from the responsestream, but using the ResponseFilter gave me a way to capture the content.

    The following code seems to work pretty good, and i figured maybe you could use the code as a base. But remember this is just something i threw together fast, it has not been tested in any way. So dont use it in any production environment without proper reviewing/testing and such. Feel free to comment on it though 😉

    public class ResponseLoggerModule : IHttpModule {     private class ResponseCaptureStream : Stream     {         private readonly Stream _streamToCapture;         private readonly Encoding _responseEncoding;          private string _streamContent;         public string StreamContent         {             get { return _streamContent; }             private set             {                 _streamContent = value;             }         }          public ResponseCaptureStream(Stream streamToCapture, Encoding responseEncoding)         {             _responseEncoding = responseEncoding;             _streamToCapture = streamToCapture;          }          public override bool CanRead         {             get { return _streamToCapture.CanRead; }         }          public override bool CanSeek         {             get { return _streamToCapture.CanSeek; }         }          public override bool CanWrite         {             get { return _streamToCapture.CanWrite; }         }          public override void Flush()         {             _streamToCapture.Flush();         }          public override long Length         {             get { return _streamToCapture.Length; }         }          public override long Position         {             get             {                 return _streamToCapture.Position;             }             set             {                 _streamToCapture.Position = value;             }         }          public override int Read(byte[] buffer, int offset, int count)         {             return _streamToCapture.Read(buffer, offset, count);         }          public override long Seek(long offset, SeekOrigin origin)         {             return _streamToCapture.Seek(offset, origin);         }          public override void SetLength(long value)         {             _streamToCapture.SetLength(value);         }          public override void Write(byte[] buffer, int offset, int count)         {             _streamContent += _responseEncoding.GetString(buffer);             _streamToCapture.Write(buffer, offset, count);         }          public override void Close()         {             _streamToCapture.Close();             base.Close();         }     }      #region IHttpModule Members      private HttpApplication _context;     public void Dispose()     {      }      public void Init(HttpApplication context)     {         _context = context;          context.PreRequestHandlerExecute += new EventHandler(context_PreRequestHandlerExecute);         context.PreSendRequestContent += new EventHandler(context_PreSendRequestContent);     }      void context_PreRequestHandlerExecute(object sender, EventArgs e)     {         _context.Response.Filter = new ResponseCaptureStream(_context.Response.Filter, _context.Response.ContentEncoding);     }      void context_PreSendRequestContent(object sender, EventArgs e)     {         ResponseCaptureStream filter = _context.Response.Filter as ResponseCaptureStream;          if (filter != null)         {             string responseText = filter.StreamContent;              // Logging logic here         }     }      #endregion } 
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 109k
  • Answers 109k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer Use swfobject. it replaces a div with the flash if… May 11, 2026 at 9:28 pm
  • Editorial Team
    Editorial Team added an answer I think you need to still grab the keys in… May 11, 2026 at 9:28 pm
  • Editorial Team
    Editorial Team added an answer alerting on events like mouseover is notoriously bad (read: unpredictable).… May 11, 2026 at 9:28 pm

Related Questions

I can never remember how I do this because it comes up so infrequently
I have a few questions related: 1) Is possible to make my program change
I'm making modifications to a members-based site whose owner wants to be able to
I'm in the process of building my first real WPF application (i.e., the first

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.