El contexto expiró y ya no se puede usar. (Excepción de HRESULT: 0x80090317)

Recientemente me he encontrado en mi día a día que tenia que desarrollar un proyecto de datos muy costoso y largo. En principio Sharepoint 2010 lo trataba bien, iba lento pero funcionaba de manera estable. El problema después de 1 día de procesamiento de datos que apareció en el log el evento que aparece en el título de este post «El contexto expiró y ya no se puede usar. (Excepción de HRESULT: 0x80090317)». ¿Que hacer? ¿no podría realizar correctamente mi proceso? ¿tendria que abandonar para siempre la programación en Sharepont? jeje, claro que no.

El problema viene debido al usar la impersonalización en el código, me explico, Sharepoint cuando impersonalizas genera un token de usuario donde aparece los grupos de seguridad a los que está inscrito y su identificador de usuario. Dicho esto solo nos queda saber que Sharepoint tiene un plazo para invalidar este token y que se tenga que solicitar otro para que, de esta forma, se actualicen los datos de los grupos a los que pertenece.
Para saber cual es el timeout que tenemos configurado en nuestra granja bastaria con ejecutar el siguiente comando:

stsadm -o getproperty -propertyname token-timeout

En principio nos aparecerá el número 1440 (minutos) que es el defecto de Sharepoint (lo que viene a ser 24 horas). Para cambiar este límite podemos usar el siguiente comando:

stsadm -o setproperty -propertyname token-timeout -propertyvalue "Minutos deseados"

Espero que os sirva de ayuda.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.