2011-01-11 9 views
7

Estoy tratando de ejecutar ServiceStack Ejemplos de proyectos. Cuando ejecuto el cliente web que estoy recibiendo el siguiente error:System.BadImageFormatException al ejecutar ejemplos de ServiceStack.

{System.BadImageFormatException: An attempt was made to load a program with an 
    incorrect format. (Exception from HRESULT: 0x8007000B) 
    at Mono.Data.Sqlite.UnsafeNativeMethods.sqlite3_open_v2(Byte[] utf8Filename, 
    IntPtr& db, Int32 flags, IntPtr vfs) 
    at Mono.Data.Sqlite.SQLite3.Open(String strFilename, SQLiteOpenFlagsEnum 
    flags, Int32 maxPoolSize, Boolean usePool) 
    at Mono.Data.Sqlite.SqliteConnection.Open() 
    at ServiceStack.OrmLite.OrmLiteConnection.Open() 
    at ServiceStack.OrmLite.OrmLiteConnectionFactory.OpenDbConnection() 
    at ServiceStack.Examples.ServiceInterface.Support.ConfigureDatabase 
     .Init(IDbConnectionFactory connectionFactory) 
    in E:\ServiceStack.Examples\src\ServiceStack.Examples\ 
    ServiceStack.Examples.ServiceInterface\Support\ConfigureDatabase.cs:line 23} 

He descargado último archivo System.Data.SQLite.dll y trató de usarlo, pero todavía estoy recibiendo el mismo error. Estoy ejecutando VS2010 de 64 bits en la caja de Windows 7 de 64 bits.

Respuesta

10

Establezca el objetivo de plataforma de su proyecto principal en x86 para solucionarlo. Esto se puede hacer bajo Proyecto ... -> Propiedades -> Construir.

Es muy probable que SqlLite sea un componente de 32 bits, y para poder cargarlo, su aplicación también necesita una aplicación de 32 bits (los procesos de 64 bits no pueden cargar componentes de 32 bits y viceversa).

+0

He intentado ** Cualquier CPU **, ** 86 ** pero todavía conseguir el mismo error. – TheVillageIdiot

7

Esto es un problema al intentar cargar el sqlite.dll de 32 bits con un IIS/pc de 64 bits.

Para conseguir que funcione es necesario 'Habilitar 32 bits aplicaciones de tu dominio de aplicación por:

  1. La apertura del Administrador de IIS
  2. Haga clic en 'Configuración avanzada' en el grupo de aplicaciones.
  3. Conjunto permitir que las aplicaciones de 32 bits a cierto

Para una respuesta más oportuna dude en enviar un enlace a cualquier pregunta relacionada con el ServiceStack ServiceStack Google Group.

Actualización: Olvidé agregar: también necesita que su proyecto de nivel más alto (es decir, su aplicación web ASP.NET) tenga su configuración de compilación establecida en x86 (32 bits).

Si descarga latest version of ServiceStack.Examples (v2.01), esto debería funcionar ahora en los servidores de 64 bits.

Más información sobre este se puede seguir en:

https://groups.google.com/d/topic/servicestack/EUPqF2jI4ig/discussion

Cuestiones relacionadas