4 Stimmen

Größe der Seite über HttpModule ermitteln

Hier ist eine einfache Aufgabe für Sie:

Ich bin derzeit protokollieren Anfrage Dauer über ein HttpModule und ich möchte herausfinden, die Anzahl der Bytes jede Seite ist als gut.

HttpContext.Current.Response.OutputStream.Length wirft eine NotSupportedException .

Wie kann man dies auf einfache Weise tun?

3voto

Jason Z Punkte 12679

Ich habe ein HttpModule, das einen Stream Rewriter implementiert. Es leitet sich von der Stream-Klasse ab. In meinem HttpModule habe ich den folgenden Code:

void app_PreRequestHandlerExecute(object sender, EventArgs e)
{
    HttpResponse response = HttpContext.Current.Response;
    response.Filter = new MyRewriterStream(response.Filter);
}

In der Stream-Klasse habe ich den folgenden Code, der die Standardmethode Write außer Kraft setzt:

public override void Write(byte[] buffer, int offset, int count)
{
     string outStr;
     outStr = UTF8Encoding.UTF8.GetString(buffer, offset, count);
     //Do useful stuff and write back to the stream
}

Sie können einfach die Länge der Zeichenkette am zweiten Punkt nehmen

0 Stimmen

Meinst du: response.Filter = new MyRewriterStream(response.OutputStream) ??

0 Stimmen

Vergessen Sie's, Sie hatten Recht... es sah nur wie ein Tippfehler aus. Das war's!

0 Stimmen

Achten Sie darauf, den Byte[]-Puffer in eine Zeichenkette umzuwandeln, wenn die Anfrage eine Binärdatei betrifft.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X