Здравствуйте, feanor_ka, Вы писали:
_>Нужно после рендеринга страницы перед ее отправлением получить размер. Метод Response.OutputStream.Length не срабатывает.
перегрузить Render:
protected override void Render(HtmlTextWriter writer)
{
using(MemoryStream stream = new MemoryStream())
{
using (StreamWriter innerWriter = new StreamWriter(stream))
{
using (HtmlTextWriter htmlWriter = new HtmlTextWriter(innerWriter))
{
base.Render( htmlWriter );
htmlWriter.Flush();
stream.Seek(0, SeekOrigin.Begin);
string html = "";
using (StreamReader reader = new StreamReader(stream))
html = reader.ReadToEnd();
int size = html.Length;
writer.Write( html );
}
}
}
}
... << RSDN@Home 1.1.3 stable >>
Re[2]: Как получить размер принятых/переданных данных в ASP.
Hello, "mogadanez" > > _>Нужно после рендеринга страницы перед ее отправлением получить размер. Метод Response.OutputStream.Length не срабатывает. > перегрузить Render: >
Так ты посчитаешь количество символов на странице. Если требуется реальное количество байт отправляемых на клиента, то этот способ нужно как минимум модифицировать
Posted via RSDN NNTP Server 1.9 alpha
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[3]: Как получить размер принятых/переданных данных в ASP.
Здравствуйте, TK, Вы писали:
TK>Hello, "mogadanez" >> >> _>Нужно после рендеринга страницы перед ее отправлением получить размер. Метод Response.OutputStream.Length не срабатывает. >> перегрузить Render: >>
TK>Так ты посчитаешь количество символов на странице. Если требуется реальное количество байт отправляемых на клиента, то этот способ нужно как минимум модифицировать
Если ты имеешь в виду Http заголовки — то в Response.Filter их также не будет.
а у меня в примере действительно размер надо брать у stream'a а не у строки. + надо бы кодировку учесть.
совпадение с числом полученым в Response.Filter — 100%, но кода нужно писать меньше.
protected override void Render(HtmlTextWriter writer)
{
using(MemoryStream stream = new MemoryStream())
{
using (StreamWriter innerWriter = new StreamWriter(stream))
{
using (HtmlTextWriter htmlWriter = new HtmlTextWriter(innerWriter))
{
base.Render( htmlWriter );
htmlWriter.Flush();
stream.Seek(0, SeekOrigin.Begin);
string html = "";
long size = 0;
using (StreamReader reader = new StreamReader(stream, HttpContext.Current.Response.ContentEncoding))
{
html = reader.ReadToEnd();
size = stream.Length;
}
writer.Write( html );
}
}
}
}
... << RSDN@Home 1.1.3 stable >>
Re[2]: Как получить размер принятых/переданных данных в ASP.
Здравствуйте, TK, Вы писали:
TK>Hello, "feanor_ka" >> Нужно после рендеринга страницы перед ее отправлением получить размер. Метод Response.OutputStream.Length не срабатывает.
TK>Можно воспользоваться подменой HttpResponse.Filter и там проводить нужные вычисления
я пробовал MemoryStream туда подставить — ругается
Re[4]: Как получить размер принятых/переданных данных в ASP.
Здравствуйте, feanor_ka, Вы писали:
_>Здравствуйте, TK, Вы писали:
TK>>Hello, "feanor_ka" >>> Нужно после рендеринга страницы перед ее отправлением получить размер. Метод Response.OutputStream.Length не срабатывает.
TK>>Можно воспользоваться подменой HttpResponse.Filter и там проводить нужные вычисления
_>я пробовал MemoryStream туда подставить — ругается
просто подставить нельзя... нужно делать примерно так:
public class MyResponseFilter : MemoryStream
{
private Stream inner_stream_;
public MyResponseFilter (Stream inner_stream)
{
this.inner_stream_ = inner_stream;
}
public override void Write(byte[] buffer, int offset, int count)
{
//count есть искомая величина.base.WriteTo(inner_stream_) ;
}
}
//.....
//на странице:
Response.Filter = new ResponseFilter( Response.Filter );
... << RSDN@Home 1.1.3 stable >>
Re[5]: Как получить размер принятых/переданных данных в ASP.
Hello, "feanor_ka" > > Дело в том что страниц очень много и контролов порядка 20... Для каждого Render перегружать не хочется .. А траффик нужно считать по всему сайту
Может поднять логи веб сервера?
Posted via RSDN NNTP Server 1.9 alpha
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Здравствуйте, Gollum, Вы писали:
G>Здравствуйте, feanor_ka, Вы писали:
_>>Тут же будет учтен только траффик .aspx страниц? А графику можно на это дело прикрутить?
G>Не мучайтесь и пользуйтесь нормальной веб-статистикой. Из бесплатных awstats, из платных — webtrends.