2013-03-08 3 views
11

C#으로 ASP.NET 응용 프로그램을 빌드 중이므로 Oracle 데이터베이스에 연결하려고합니다.
내 응용 프로그램에서 내 64 비트 Microsoft Window Server 2008 컴퓨터에 Oracle.DataAccess에 대한 참조를 추가했습니다. 는 또한 와 Oracle.DataAccess.dll도이 경로파일 또는 어셈블리 'Oracle.DataAccess 오류를로드 할 수 없습니다.

C:\Windows\Microsoft.NET\assembly\GAC_64\Oracle.DataAccess

에 존재하는 내 컴퓨터에서 ODAC (오라클 데이터 액세스 구성 요소)를 설치하지만 난 연결을 시도하고있을 때 나는 다음과 같은 오류가 발생 :

Could not load file or assembly 'Oracle.DataAccess, Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342' or one of its dependencies. The system cannot find the file specified.

+1

32 비트 버전을 설치하려고 했습니까? –

+0

아니요, 64 비트 버전을 설치했습니다 –

+0

@FelipeOriani 어떻게해야합니까? 사실 64 비트 머신을 사용하고 있습니다. –

답변

5

내가 아는 한, Oracle.DataAccess 어셈블리는 32 비트에서만 작동하며, 64 비트에서 이런 종류의 문제가 있으며 실제로 작동하지 않습니다. 내 솔루션은 GAC에서 64 비트를 제거하고 GAC에 32 비트를 설치했습니다. 또한 bin 폴더의 .dll 파일을 응용 프로그램에 제거하여 GAC에서 어셈블리를 찾습니다.

시스템 및 운영 체제가 64 비트 인 경우 문제가 없습니다. 32 비트 버전이 정상적으로 작동합니다.

UPDATE

난 당신이 Official Oracle ODP.NET, Managed Driver에서 살펴 추천, 그 Oracle.DataAccess보다 더 나은 버전입니다. 이 Managed Driver은 컴퓨터에 Oracle Client이 필요하지 않으며 connection string의 DataSource 필드에 TNS를 제공하기 만하면 3264 비트에 잘 작동합니다.

+0

x64 Oracle.DataAccess 어셈블리는 x64만을 사용하여 다른 인스턴스에서 사용했기 때문에 작동합니다. 제대로 작동합니다. 왜 내 시스템에서 문제가 발생했는지 알 수 없습니다. @ 펠리페 Oriani 내 문제를 해결하기 위해 많은 감사를드립니다. –

+0

Oracle.DataAccess 어셈블리에는 32 비트 및 64 비트 버전이 있으며 둘 다 문제없이 작동합니다. 두 버전을 모두 사용했습니다. –

+0

여전히 내 컴퓨터에 나타납니다. 내 컴퓨터도 64 비트입니다. –

3

을 오라클의 x64 및 x86 버전을 모두 설치해야합니다. 디버깅 할 때 (Visual Studio라고 생각하는) x86 버전을 사용하기 때문입니다. 내게 마지막 게시물 다른 응답 참가자에 따라

+0

IIS에 게시했습니다. –

1

본질적으로 동일한 오류

없는 ODP.NET 설치 구성 요소.

GAC를 아직 확인 하시겠습니까?

당신이 Oracle.xxx 폴더가 표시되지 않는 경우

,

당신은 어떤 진척이되지 않습니다.

Oracle.DataAccess.dll의 올바른 버전과 비트를 application/BIN 폴더에 넣고 로컬 참조를 작성하십시오. 그것은 많은 문제를 해결합니다.

+1

Oracle.DataAccess.dll의 올바른 버전에 대해 확신합니다. 그리고 내가 로컬 참조를 넣으려고했지만 다음과 같은 오류가 발생했습니다. 파일 또는 어셈블리 Oracle.DataAccess 또는 해당 종속성 중 하나를로드 할 수 없습니다. 잘못된 형식의 프로그램을로드하려고했습니다. –

1

Visual Studio의 개발 서버는 32 비트 모드로만 실행되므로 웹 사이트를 실행하려면 IIS를 사용해야합니다.
IIS 응용 프로그램 풀에서 64 비트로 실행되도록 응용 프로그램을 설정하십시오. (설정이 고급 설정 임)

1

VS2010에서 플랫폼 대상을 x64로 변경했으며이 오류 메시지가 사라집니다.

0

이 오류를 해결하기 위해 IIS에서 32 비트 응용 프로그램을 허용하도록 내 응용 프로그램 풀을 설정했습니다. IIS 관리자를 열고 응용 프로그램 풀을 마우스 오른쪽 단추로 클릭 한 다음 고급 설정 -> "32 비트 응용 프로그램 사용"을 True로 설정하십시오. 그것은 나를 위해 잘 작동합니다.