Recibo esta falla de forma intermitente.
Encontré este enlace que resume bastante bien lo que pude encontrar en Google: http://www.wacdesigns.com/2009/02/03/session-state-has-created-a-session-id-but- no puedo-guardar-porque-la-respuesta-ya-fue-eliminada-por-la-aplicación /
Básicamente, dice que puede intentar configurar la configuración web DisplayWhenNewSession, o intentar darle vida al estado de la sesión obteniendo Session.SessionID en Session_OnStart.
Pero, ¿alguien:
a) tener una explicación para esto
o incluso mejor, b) tener una solución probada
Me doy cuenta de que no puedo vaciar la respuesta después de hacer algo que afecte el encabezado de respuesta http. Si hiciera esto, causaría un error cada vez, pero esto es intermitente. El SessionID seguramente debería ser creado por ASP.NET al comienzo de la respuesta de la página automáticamente, antes de cualquier cosa en la página ASPX o Page_Load (que es donde se llaman todos mis flushes).
Actualización: Reflexionando, me doy cuenta de que esto está sucediendo cuando se transmite un archivo al navegador. La mayoría de los navegadores son robots de motores de búsqueda. Puedo recrear este error iniciando una descarga y luego cerrando el navegador, por lo que presumiblemente los navegadores no están esperando a que se complete la descarga antes de cancelar la operación de descarga. También he visto esto en otras páginas normales, pero el 99% del tiempo son páginas de descarga.