Hay muchas preguntas que son similares a esto ... pero no veo la forma en que tienen este problema específico:¿No se puede serializar el estado de la sesión debido a Microsoft.Web.Services3.StateManager?
Tengo un servicio web que devuelve un error que comienza con:
Incapaz para serializar el estado de la sesión. En el modo 'StateServer' y 'SQLServer', ASP.NET serializará los objetos de estado de sesión, y, como resultado, los objetos no serializables o los objetos MarshalByRef están no permitidos. La misma restricción se aplica si la serialización similar es realizada por el almacén de estado de sesión personalizado en el modo 'Personalizado'.
Así, preguntas como this mención a buscar SerializationException, averiguar lo que no puede ser serializado, y que sea serializable. Suena sencillo ... pero cuando lo busco, encuentro esto:
[SerializationException: Tipo 'Microsoft.Web.Services3.StateManager' en la Asamblea 'Microsoft.Web.Services3, versión = 3.0.0.0 , Culture = neutral, PublicKeyToken = 31bf3856ad364e35' no está marcado como serializable .]
Esto me confunde ... suena como si estuviera realmente tratando de serializar el StateManager ... es sólo que está ocultando que ¿Hay algo más dentro que StateManager no puede ser serializado? Si es así, ¿hay alguna manera de descubrir qué? ¿O se supone que el StateManager debe ser serializable por alguna razón? (Sospecho que no estoy diciendo esto muy claramente ... lo siento ... si tienes preguntas, haré todo lo posible para responderlas.)
Una cosa que también debo notar es que estamos usando NCache como un proveedor de la tienda de sesión, que parece que podría estar relacionado de alguna manera. Pero no tengo claro cómo eso podría causar lo que estoy viendo.
Eso es muy extraño. ¿Puedes fijarlo en una línea específica de código? ¿Sucede en cada llamada a un método, o solo en ciertos? –
Lamentablemente, tampoco. Sucede solo algunas veces, y aunque sucederá varias veces seguidas, luego desaparece y no podemos reproducirlo después de eso, por lo que ha sido difícil rastrearlo. – Beska
Supongo que ha revisado todo lo que está estableciendo explícitamente en el estado de la sesión o que usa la sesión como almacén de respaldo, y no está accidentalmente poniendo un StateManager en sesión. (Probablemente verías más de un patrón si estuvieras haciendo eso, en realidad). Como dices que estás usando NCache, comenzaría a hablar con esa compañía y revisar los foros de esa compañía, etc., si aún no lo has hecho. –