jueves, 13 de marzo de 2008

FbMembershipProvider.CreateUser - validation error for column ISONLINE, value *** null ***

Migrando un membership a FireBird me encontre con un #@$@#$# error que me llevo casi todo un dia descubrir lo que sucedia:

validation error for column ISONLINE, value "*** null ***"

Este error me era arrojado en el event view de windows al fallar la creacion de un nuevo usuario.

Despues de revisar el store procedure que inserta un nuevo usuario, pasarme casi toda la mañana verificando la DB, los tipos de datos de los campos y hacer algunas pruebas insertando directamente con el mismo SP, me di cuenta que todo estaba bien, y que el error provenia de la clase FbMembershipProvider.

Busque por google exactamente el mensaje que me arrojaba y nada! Pero si encontre que habian algunos errores con la creacion de usuarios en algunas versiones mas viejas del FbMembershipProvider. Verificando el codigo fuente del Provider.Net de FireBird, observe que habian dos clases FbMembershipProvider y FbMembershipProvider2, esta ultima es mas completa y terminada. Cambie mi referencia en el web.config del MembershipProvider:

type="FirebirdSql.Web.Providers.FbMembershipProvider,FirebirdSql.Web.Providers, Version=2.0.0.0,Culture=neutral,PublicKeyToken=3d06a02581b682f8"

a:

type="FirebirdSql.Web.Providers.FbMembershipProvider2,FirebirdSql.Web.Providers, Version=2.0.0.0,Culture=neutral,PublicKeyToken=3d06a02581b682f8"

Todo era porque no estaba usando la version la version "2"

La verdad es que la documentacion es muy pobre, hay que buscarsela e ingeniarsela a no mas poder con esto para dar con la solucion. Incluso, si la version 1 tiene Bugs que se corrigen con la 2, no veo cual es el sentido de tener las dos disponibles, lo cual puede prestar a confunsion, ya que los pocos ejemplo que podemos encontrar para la implementacion del FbMembershipProvider no hace mension de la version corregida FbMembershipProvider2

No hay comentarios: