viernes, 22 de junio de 2012

La tabla externa no tiene el formato esperado. System.Data.OleDb.OleDbException

Problema

   1: Se detectó System.Data.OleDb.OleDbException



   2:   HResult=-2147467259



   3:   Message=La tabla externa no tiene el formato esperado.



   4:   Source=Microsoft JET Database Engine



   5:   ErrorCode=-2147467259



   6:   StackTrace:




Diagnóstico



En mi caso este error lo recibí por no utilizar el provider correcto en driver. Estoy utilizando un archivo de Excel versión 2010 con extensión “xlsx” y el driver está referido a versión antigua “xls”





   1: <add name="ExcelConnectionString"



   2:       connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\archivo.xls;Persist Security Info=False;Extended Properties=&quot;Excel 8.0;HDR=YES&quot;"



   3:       providerName="System.Data.OleDb" />




Solución



Cambiar el provider y en la cadena de conexión a Excel.





   1: <add name="ExcelConnectionString" 



   2:      connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=d:\archivo.xlsx;Persist Security Info=False;Extended Properties=&quot;Excel 12.0 Xml;HDR=YES;IMEX=1&quot;" 



   3:      providerName="System.Data.OleDb"/>




Nota: debe tener instalados los drivers correctos en su máquina, claro.



Etiquetas de Technorati: ,

martes, 5 de junio de 2012

The constructor to deserialize an object of type ‘[XType]' was not found

El error

   1: El código de usuario no controló System.Runtime.Serialization.SerializationException



   2:   HResult=-2146233076



   3:   Message=The constructor to deserialize an object of type 'Metis.Security.IdentityClaims' was not found.



   4:   Source=WebDev.WebHost40



   5:   StackTrace:



   6:        at Microsoft.VisualStudio.WebHost.Server.GetProcessToken()



   7:        at Microsoft.VisualStudio.WebHost.Host.GetProcessToken()



   8:        at Microsoft.VisualStudio.WebHost.Request.GetUserToken()



   9:        at Microsoft.VisualStudio.WebHost.Request.GetServerVariable(String name)




Este problema se refiere a la necesidad de implementar el constructor de serialización personalizada correspondiente.



Sin embargo, en mi caso ya está implementado el constructor y mi problema es un derivado donde el Servidor Web de Desarrollo que estaba utilizando no encontraba mi implementación.



Solución



Una vez más al estar utilizando el Servidor Web de desarrollo de Visual Estudio (WebDev.WebHost40) es necesario copiar las dll dependientes de la seguridad en el directorio correspondiente. (Ver donde en la entrada previa El tipo no está resuelto para el miembro “X”).



Alternativa



Sonrisa Una mejor alternativa, si los tiene disponibles, es utilizar IIS Express ó el IIS local, que no tienen este inconveniente, es decir no necesita copiar archivos a ningún lado.



image