Estoy creando una aplicación web en C#.

Cuando mi carga de la página, yo fuego una asincronía en el hilo de proceso de datos. Parte de este proceso es la actualización de una cookie. Sin embargo, cuando puedo guardar la cookie a la respuesta por

System.Web.HttpContext.Current.Response.Cookies.Add(cookie), Tengo la siguiente excepción:

HttpException: Server cannot modify cookies after HTTP headers have been sent.

Cualquier manera que pueda evitar o solucionar este problema?

InformationsquelleAutor amateur | 2011-03-31

3 Comentarios

  1. 4

    A menos que tenga una muy buena razón, usted no debería estar girando hasta el fondo de subprocesos de trabajo en un ASP.NET solicitud. En última instancia, usted todavía tiene que esperar a que este hilo para terminar su trabajo antes de enviar la respuesta al navegador.

    Suena como la secuencia de respuesta ya ha sido parcialmente por escrito y, a continuación, el hilo está tratando de agregar la cookie.

    Me gustaría replantear su estrategia y tomar una lectura de las siguientes directrices:

    Capítulo 6 — la Mejora de la ASP.NET Rendimiento – Threading Directrices

    Parece una fecha de documento, pero los principios siguen en pie. Si la razón para hacer de tu llamada para el procesador de datos es evitar que el ASP.NET subproceso de trabajo de bloqueo y el uso de los recursos debido a que el procesador de datos es de larga duración, a continuación, considere la posibilidad de hacer la página de un Página asincrónica lugar.

    • «Suena como la secuencia de respuesta ya ha sido parcialmente por escrito y, a continuación, el hilo está tratando de agregar la cookie.» – sí, correcto. Es esto posible?
    • sí que es posible, pero sin ver exactamente cómo se está estructurando el código no me especular donde.
  2. 1

    Sí, las Cookies son parte de la respuesta http y en un async operación, usted no puede cambiar nada después de la respuesta se genera y se envía al navegador.

    Para evitar esto recomiendo para construir un ajax bucle en el navegador para obtener async resultado de la operación. Cuando la operación se completó puede devolver una cookie con la respuesta de ajax.

    • interesante – me pueden obtener un ejemplo de cómo esto se puede configurar?

Dejar respuesta

Please enter your comment!
Please enter your name here