Turn on more accessible mode
Skip Ribbon Commands
Skip to main content
Turn on Animations

Problemas con instalación de WebParts

WebParts


Como resolver (y porque ocurren) problemas con la instalación de WebParts
Autor: Gustavo

Un conocido mensaje de SharePoint es "No se puede mostrar o importar un elemento Web…" cuando se quiere instalar una WebPart:

Este es un mensaje genérico que puede ocurrir por varias causas. Microsoft decidió utilizar este tipo de mensajes y no uno con mas información por cuestiones de seguridad (entregar demasiada información puede dar indicaciones sobre la configuración del sistema) y para evitar que usuarios del sistema se confundan con información técnica irrelevante para ellos.

Algunas veces puede ocurrir que la primera vez que la WebPart aparece en pantalla muestra un error con más información (por ejemplo, "No se ha especificado un valor por defecto"), pero el error solamente es mostrado una sola vez: la siguiente vez aparece el error genérico. Esto ocurre porque la WebPart apenas está en el proceso de deserializar, y todavía no ha puesto su condición de "error" en el cache. La segunda vez que la pagina es llamada, SharePoint ya ha detectado el problema y muestra el error genérico.

Si el error es debido a problemas de seguridad, la razón es registrada en el Visor de Sucesos como un error de SharePoint:

Si la pagina en donde se ha instalado la WebPart hace una redirección inmediata hacia la pagina de mantenimiento de WebParts, significa que la instalación de la WebPart ha sido hecha con éxito, pero que la WebPart esta generando un error interno que no ha sido atrapado por el código. En este caso, el desarrollador del código tiene que modificar la WebPart, y utilizar rutinas de "try/catch" internamente.

Cuando el error mencionado al principio del artículo ocurre, revise los siguientes puntos:

1 - Asegúrese que la información de registro en el archivo web.config es correcta:

Los nombres del "assembly" y del "Namespace" tienen que coincidir perfectamente con los valores originales (mayúsculas y minúsculas) y la versión tiene que ser la correcta. Asegúrese que el "PublicKeyToken" ha sido calculado con "sn -T" y no con "sn -t" (el parámetro "t" [minúscula] produce una llave que no se puede usar en el registro)

2 - Asegúrese que la información en el archivo ".dwp" es correcta, especialmente los parámetros "Assembly" y "TypeName" tienen que corresponder exactamente con el original (mayúsculas y minúsculas)

3 - Asegúrese que el ensamblado esta instalado en forma correcta (en el GAC o en el directorio Bin de la raíz de IIS)

Los siguientes puntos son para tener en cuenta por los desarrolladores de la WebPart:

4 - Utilice código para atrapar posibles errores ("try/catch") constante y consistentemente.

5 - Defina el "Namespace" de una forma correcta para todo el proyecto, especialmente en proyectos de Visual Basic

6 - No olvide eliminar los comodines para la versión de la WebPart (archivo "AssemblyInfo"). Si no lo hace, el resultado es que el registro en el web.config no coincide con el dll

7 - Si el código de la WebPart intenta utilizar información "fuera" de SharePoint (información proveniente de una Base de Datos, por ejemplo), es necesario crear una póliza de seguridad propia, o bajar el "trust level" a "WSS_Medium" o "Full". Lo mismo si se intenta utilizar métodos de Objetos reservados para la Administración de SharePoint. Para mas información sobre el FrameWork de seguridad de SharePoint, léa el articulo CAS de Microsoft ("Microsoft Windows SharePoint Services and Code Access Security")

8 - Si recibe un error "No se puede deserializar la WebPart" ("Web Part Error: Cannot deserialize the Web Part on the Server"), léa el articulo de conocimiento base de Microsoft numero 826786

Comentario de Marcos - 16-11-2006: Este error tambien se produce cuando se ha realizado una webpart con el framework 2.0 y tenemos instalado el sharepoint sobre el framework 1.0 puesto que no reconoce las dlls. Se soluciona cambiando el sharepoint en el ISS al framework 2.0 o realizando la webpart con el framework 1.0