2010-03-23 2 views
4

.net 클래스를 사용하여 AS400 서버에 연결하려고합니다.
IBM.Data.DB.iSeries에 대한 참조를 추가했으며 다음 코드를 사용합니다.
var conn = 새 iDB2Connection ("DataSource = 111.111.111.111; UserID = xxx; Password = xxx; DataCompression = True;");
conn.Open();AS400 (ISeries)에 연결할 때 오류가 발생했습니다.

그러나 다음 예외가 발생합니다.
64 비트 실행 : "공급자를 64 비트 모드로 실행할 수 없습니다."
32 비트 실행 중 : 예기치 않은 예외가 발생했습니다. 형식 : System.DllNotFoundException, 메시지 : 'cwbdc.dll'DLL을로드 할 수 없습니다 : 운영 체제를 실행할 수 없습니다. (HRESULT 예외 : 0x800700B6).

Client Access를 설치 제거한 후 다시 설치했습니다. cwbdc.dll은 system32 및 syswow64에 존재합니다. odbc를 사용하는 경우 AS400에 연결하는 데 문제가 없습니다.

저는 Windows 7의 64 비트 버전을 실행 중입니다.
아이디어가 있으십니까?

/지미

+0

+1 먼저 물어서 내 문제를 파악하도록 도와주세요. – David

답변

5

당신이 사용중인 드라이버는 64 비트 시스템에서 지원되지 않는 것 같습니다. 빌드 탭의 프로젝트 속성에서 플랫폼 대상을 Any CPU 대신 x86으로 설정해보십시오.

+0

x86으로 설정하면 다른 오류 메시지가 나타납니다 : "예기치 않은 예외가 발생했습니다. 형식 : System.DllNotFoundException, 메시지 : DLL 'cwbdc.dll'을로드 할 수 없습니다 : 운영 체제를 실행할 수 없습니다 (HRESULT : 0x800700B6 예외). " –

+1

+1 - 동일한 오류가 발생하여 답변을 찾았습니다. 고맙습니다! – David

+0

비슷한 문제점이 있으며 Visual C++ 2008 Redistributable을 [SP1] (http://www.microsoft.com/en-us/download/details.aspx?id=5582)로 대체하여 해결했습니다. (힌트 : http://stackoverflow.com/a/3412380/908336) –