ok, ora ho capito.
Non puoi includere due scritture sul response assieme, una per la pagina, una per il file di log.
O scrivi la pagina, o scrivi il file di log.
Quello che puoi fare è salvarti il log in session o meglio in cache (se prorpio non vuoi salvarlo come file), e poi nella tua pagina metti:
protected override void OnPreRenderComplete(EventArgs e)
{
base.OnPreRenderComplete(e);
if (l_LogBuffer.Count() != 0)
ClientScript.RegisterStartupScript(
this.GetType(),
"downloadLog",
@"window.open(
'download.ashx',
'downloadWindow',
'status=0,toolbar=0,location=0,menubar=0,
directories=0,resizable=0,scrollbars=0,
height=10,width=10');",
true);
}
dove download.ashx è un httpHandler che tu farai e ci includi semplicemente il codice del tuo if incriminato.
public void ProcessRequest(HttpContext context)
{
l_LogBuffer = <lo riprendo da session o da cache>
context.Response.ContentType = "text/plain";
context.Response.AddHeader("Content-Disposition", "attachment; filename = LogMessages.txt");
Response.BinaryWrite(l_LogBuffer);
}
Non so se è il motodo migliore, ma mi è venuto così ;-))
____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.