System.BadImageFormatException при запуске примеров ServiceStack. - PullRequest
7 голосов
/ 11 января 2011

Я пытаюсь запустить 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}

Я скачал последний файл System.Data.SQLite.dll и попытался использовать его, но получаю ту же ошибку.Я использую 64-разрядную версию VS2010 в 64-разрядной версии Windows 7.

Ответы [ 2 ]

10 голосов
/ 11 января 2011

Установите целевую платформу вашего основного проекта на x86, чтобы это исправить.Это можно сделать в Project ... -> Properties -> Build .

SqlLite, скорее всего, является 32-разрядным компонентом, и для того, чтобы его загрузить, ваше приложение должно быть32-битное приложение (64-битные процессы не могут загружать 32-битные компоненты и наоборот).

7 голосов
/ 25 января 2011

Это проблема при попытке загрузить 32-битный sqlite.dll с 64-битным IIS / pc.

Чтобы заставить его работать, вам нужно включить 32-битные приложения для своего домена приложений:

  1. Открытие IIS Manager
  2. Нажмите «Расширенные настройки» в пуле приложений.
  3. Установить Включить 32-разрядные приложения в true

Для более своевременного ответа отправьте ссылку на любые вопросы, связанные с ServiceStack, в ServiceStack Google Group .

Обновление: я забыл добавить: вам также нужен ваш проект самого верхнего уровня (то есть ваше веб-приложение ASP.NET), чтобы его конфигурация сборки была установлена ​​на x86 (32 бита).

Если вы загрузите последнюю версию ServiceStack.Examples (v2.01) , теперь она должна работать на 64-битных серверах.

Более подробную информацию об этом можно отслеживать по:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...