aelena.com

31 January 2008

Cuidado con el XPath dinamico

Filed under: .NET, debugging, xpath, xml — admin @ 12:31

Hoy me ha tocado perseguir un bug por “dentro” de un servicio web. Se trataba de corregir una expresión XPath relativamente compleja y generada dinámicamente a base de concatenación de parámetros. La consulta no funcionaba. Finalmente era una tontería, pero conviene recordar en estos casos que al usar operadores booleanos en dichas consultas (operadores que en XPath no son signos sino que se escriben tal cual: “and”, “or”, etc.) que no se deben escribir en mayúsculas.
Si en lugar de “or” escribimos “OR”, el motor de XPath - al menos en .Net 2.0 - lo entenderá como un token del documento xml y por tanto al no encontrarlo a la hora de compilar la expresión XPath, provocará una excepción de tipo XPathException. Nada más. Pero es de esas cosas que conviene recordar, sobre todo porque ha sido el último sitio en el que se me ha ocurrido mirar.

25 January 2008

SafeControl load exception

Filed under: MOSS 2007, exceptions — admin @ 11:39

Cuando estamos desplegando webparts manualmente a nuestro MOSS, tenemos que agregar elementos SafeControl al web.config de MOSS para que los ensamblados de las web parts sean reconocidas por MOSS.

Como siempre es un proceso no exento de errores. Cuando por algún motivo MOSS no es capaz de cargar uno de los ensamblados de nuestras web parts, nos dejará un mensaje de error en el Registro de Eventos de la máquina, que podremos ver, como siempre, con eventvwr.exe.

El mensaje será muy parecido a este:


Error al cargar el ensamblado: ****************, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6f95ee42b6d475b3

Nos dice que hay un error, pero no nos apunta ningún dato más sobre el problema. Para averiguar algo más lo mejor es recurrir a los logs de texto de MOSS, ubicados en


C:\Archivos de programa\Archivos comunes\Microsoft Shared\web server extensions\12\LOGS

Ordenándolos de manera que los mas recientes queden primeros, abrimos el primer log y buscamos la cadena "SafeControl load exception". Si hemos tenido problemas encontraremos entradas similares a este:


SafeControl load exception:******************, Version=1.0.0.0, Culture=neutral, PublicKeyToken=48dc7d161dd03c83 Exception: No se puede cargar el tipo '*****************' del ensamblado'******************, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d92b2326f55fc18c'.

Vemos que tenemos un problema con un ensamblado adicional utilizado por el nuestro. Ya sabemos algo más, y sin duda se trata de una información mucho más útil ya que nos indica el verdadero problema y nos apunta en la dirección correcta para su resolución.

12 January 2008

Cadenas de conexion en el web.config de MOSS

Filed under: MOSS 2007 — admin @ 11:37

Las cadenas de conexión en el web.config de MOSS no pueden ir en cualquier sitio, sino que tienen que estar en un lugar específico para poder ser reconocidas, ya que el esquema de estos archivos de configuración es distinto a de los que usaría una aplicación asp.net normal.

El lugar es entre las etiquetas </SharePoint> y <system.web>, por ejemplo:


</SharePoint>

<connectionStrings>
<add providerName="System.Data.SqlClient" connectionString ="Data Source=***********;Initial Catalog=****; Integrated Security=True" name="default" />
</connectionStrings>

<system.web>

Si la cadena no está exactamente ahí, no será reconocida.

code on!!!!