2011-01-11 9 views
7

ServiceStack Örnek projeler çalıştırmaya çalışıyorum. Ben web istemcisi çalıştırdığınızda aşağıdaki hatayı alıyorum: Ben System.Data.SQLite.dll dosyası en son indirilen ve kullanmaya çalıştıkSystem.BadImageFormatException.

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

ama hala aynı hatayı alıyorum. Windows 7 64-bit kutusunda 64-bit VS2010 çalıştırıyorum.

cevap

10

Bunu düzeltmek için ana projenizin platform hedefini x86 olarak ayarlayın. Bu, Proje ... -> Özellikler -> Yapı altında yapılabilir.

SqlLite büyük olasılıkla 32 bitlik bir bileşendir ve uygulama yükleyebilmeniz için uygulamanızın 32 bitlik bir uygulama olması gerekir (64 bit işlemler 32 bit bileşenlerini yükleyemez veya tam tersi).

+0

** Herhangi bir CPU ** ** x86 ** ama yine de elde aynı hata: Bu konuda

fazla bilgi üzerinde izlenebilir. – TheVillageIdiot

7

32bit sqlite.dll dosyasını 64 bit bir IIS/PC ile yüklemeye çalışırken bu bir sorundur. Application Pool üzerinde

  1. Açılım IIS Yöneticisi
  2. 'Gelişmiş Ayarlar':

    Eğer ederek AppDomain için '32-bit Uygulamalarını etkinleştir' gerek işe almak için.

  3. Seti ServiceStack Google Group herhangi ServiceStack ilgili sorulara bir bağlantı göndermek için çekinmeyin daha zamanında müdahale için gerçek

-32 bit Uygulamalarını etkinleştirme .

Güncelleme: Eklemeyi unuttum: ayrıca en üst düzey projenize (yani ASP.NET web uygulamanızın) x86 (32bit) değerine ayar yapılandırmasına sahip olması gerekir.

latest version of ServiceStack.Examples (v2.01)'u karşıdan yüklerseniz, bu 64 bit sunucularda çalışmalıdır. Denedim

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