2011-01-11 7 views
7

ServiceStack 프로젝트를 실행하려고합니다. 나는 웹 클라이언트를 실행하면 나는 다음과 같은 오류가 점점 오전 : 나는 System.Data.SQLite.dll 파일 최신 다운로드 및 사용하는 것을 시도했다ServiceStack 예제를 실행할 때 System.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} 

,하지만 여전히 같은 오류를 얻고있다. Windows 7 64 비트 시스템에서 64 비트 VS2010을 실행 중입니다.

답변

10

이 문제를 해결하려면 주 프로젝트의 플랫폼 대상을 x86으로 설정하십시오. 이것은 프로젝트 아래에서 수행 할 수 있습니다 -> 속성 -> 빌드.

SqlLite는 32 비트 구성 요소 일 가능성이 높으며 응용 프로그램을로드 할 수 있으려면 응용 프로그램도 32 비트 응용 프로그램이어야합니다 (64 비트 프로세스는 32 비트 구성 요소를로드 할 수 없으며 그 반대의 경우도 마찬가지 임).

+0

** 모든 CPU **, ** 86 **하지만 여전히 점점 같은 오류 :이 약

더 많은 정보를 추적 할 수 있습니다. – TheVillageIdiot

7

64 비트 IIS/pc로 32 비트 sqlite.dll을로드하려고하면이 문제가 발생합니다. 귀하의 응용 프로그램 풀에

  1. 열기까지 IIS 관리자
  2. 클릭 '고급 설정'

    당신이하여 응용 프로그램 도메인 '32 비트 응용 프로그램을 사용'할 필요가 작동하도록합니다.

  3. 설정은 ServiceStack Google Group 모든 ServiceStack 관련 질문에 대한 링크를 보내 주시기 더 적절한 응답을 진정한

-32 비트 응용 프로그램 사용 .

업데이트 : 추가하는 것을 잊었습니다. 빌드 구성을 x86 (32 비트)로 설정하려면 최상위 수준 프로젝트 (즉, ASP.NET 웹 응용 프로그램)가 필요합니다.

latest version of ServiceStack.Examples (v2.01)을 다운로드하면 64 비트 서버에서 작동합니다. 내가 해봤

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