2011-01-11 11 views
7

Ich versuche ServiceStack Beispiele Projekte auszuführen. Wenn ich den Web-Client laufen erhalte ich folgende Fehlermeldung:System.BadImageFormatException beim Ausführen von ServiceStack-Beispielen.

{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} 

Letzte System.Data.SQLite.dll Datei heruntergeladen haben, und versucht, es zu benutzen, aber immer noch die gleiche Störung erhalte. Ich verwende 64-Bit-VS2010 auf Windows 7 64-Bit-Box.

Antwort

10

Setzen Sie das Plattformziel Ihres Hauptprojekts auf x86, um dies zu beheben. Dies kann unter Projekt ... -> Eigenschaften -> Build erfolgen.

SqlLite ist höchstwahrscheinlich eine 32-Bit-Komponente, und um es zu laden, muss Ihre Anwendung auch eine 32-Bit-Anwendung sein (64-Bit-Prozesse können keine 32-Bit-Komponenten laden und umgekehrt).

+0

Ich habe versucht ** Jede CPU ** ** ** x86, aber immer noch gleichen Fehler. – TheVillageIdiot

7

Dies ist ein Problem beim Versuch, die 32bit sqlite.dll mit einem 64bit IIS/pc zu laden.

Um es zu bekommen Sie für Ihre AppDomain '32-Bit-Anwendungen aktivieren' arbeiten müssen:

  • Klicken Sie auf 'Erweiterte Einstellungen' auf Ihrem Anwendungs ​​Pool

    1. Die Öffnung IIS-Manager.
    2. Set Aktivieren 32-Bit-Anwendungen auf true

    Für eine rechtzeitige Reaktion frei fühlen Sie einen Link zu allen ServiceStack Fragen zum ServiceStack Google Group zu senden.

    Update: Ich habe vergessen hinzuzufügen: Sie müssen auch Ihr Top-Level-Projekt (d. H. Ihre ASP.NET-Webanwendung), um seine Build-Konfiguration auf x86 (32bit) gesetzt haben. Wenn Sie das latest version of ServiceStack.Examples (v2.01) herunterladen, sollte dies jetzt auf 64-Bit-Servern funktionieren.

    Weitere Informationen dazu finden Sie auf nachverfolgt werden:

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