0

가 기록되고 :"데이터베이스 압축 라이브러리를로드하지 못했습니다."는 원인과 해결 방법은 무엇입니까? 3.5 응용 프로그램에서 우리는 다음과 같은 오류 메시지가 표시되는 윈도우 모바일 5를 실행 .NET 컴팩트 프레임 워크에서

Could not load database compaction library. Operation has been aborted. 
    at System.Data.SqlServerCe.SqlCeEngine.ProcessResults(IntPtr pError, Int32 hr) 
    at System.Data.SqlServerCe.SqlCeEngine.Repair(SEFIXOPTION option, String dstConnStr, RepairOption repairOption) 
    at System.Data.SqlServerCe.SqlCeEngine.Compact(String connectionString) 

in: 

SQL Server Compact ADO.NET Data Provider 

이 응용 프로그램은 SQL 서버 데이터베이스 압축 파일을 압축하는 명령을 실행하고 오류를 수신 응답.

오류 메시지가 일시적으로 발생합니다. 컴팩트 조작이 완료되고 위의 오류가 로그되는 경우가 있습니다.

이 오류 메시지를 검색하면 메모리 부족 (또는 올바른 종류의 메모리)이 원인이라는 일부 결과가 표시되지만이 오류는 모든 장치 플랫폼에서 일관되게 발생하지는 않습니다. 특정 제조업체의 일부 Windows Mobile 장치에서는이 오류가 발생하지 않으며 다른 제조업체의 장치에서는이 오류가 더 자주 발생합니다.

답변

1

데이터베이스에 수리 옵션을 발급 한 결과로 보입니다.

해당 작업과 관련하여 try...catch 블록을 작성하려고 시도 했습니까?

어떤 코드가 실제로 오류를 일으키는 지 확인하는 것이 도움이됩니다. 오류를 던지는 방법을 아는 것은 많은 도움이 될 수 있습니다.

이것은 실제로 더 많은 댓글이지만 댓글 섹션에 맞추기에는 너무 길었습니다.

편집 :이

안녕 리처드,

나는이 MSDN에 대한 질문입니다 생각하지 않습니다입니까? >> LINK << 2009 년 전입니다.

또한 dbaspot.com에서 메모리가 부족한 장치를 참조하는 >> THIS POST <<을 발견했습니다. 개발 장비에 "물건"이 얼마나 있습니까?

+0

감사하지만이 두 가지가 금액 있다고 생각 같은 것! try ... catch 블록으로 묶인 호출 작업의 결과로 스택 추적은 질문의 본문에 제공됩니다. 압축 작업에 전달 된 연결 문자열은 장치의 데이터베이스에 대한 연결 문자열입니다. –

+0

최신 정보는 EDIT를 참조하십시오. 어쩌면 그 중 하나가 도움이 될 것입니다. – jp2code

+0

안녕하세요, MSDN 링크가 ErikEJ의 제안과 동일하다고 생각합니까? 나는이 문제가 메모리가 부족하다고 생각하지 않는다. 아마도 원래 게시물에 명확하게 표시 할 수있다. 이것은 제조업체 중 하나의 장치에만 영향을 미치는 것으로 보이며, 다른 하나는이 오류를 기록하지 않으며 동일한 소프트웨어를 실행한다. –

1

당신은 예를 들어, 장치의 .repl CAB 파일을 설치해야합니다 실제로 소형 작업이다, sqlce.repl.ppc.wce5.armv4i.CAB

+0

안녕하세요, 응답 주셔서 감사하지만 이것은 문제가되지 않습니다, 필요한 모든 DLL 파일 등이 장치에 설치되어 있습니다. 이 문제는 결코 작동하지 않고 간헐적으로 발생합니다. –

+0

OK, 그러면 메모리 꽉 잡는 오류입니다. app_start 중에 Compaction 라이브러리를 loadLibrary를 통해로드하면 해결할 수 있습니다. – ErikEJ