2011-09-27 7 views
1

새로운 개발 컴퓨터 인 Windows 7 x64가 있으며 Oracle 데이터베이스를 대상으로하는 MVC3 응용 프로그램을 작성 중입니다. 나는 그것이 성공하지 못하게하기 위해 내가 아는 모든 것을 시도했다.HOWTO : Visual Studio 2010 MVC3 프로젝트 (Oracle ODP.NET 11.2 사용)

이전에 Win7 x32 상자에서 개발 중이었고 로컬에서 디버깅을 할 수는 있었지만 ODP.Net 및 11g 클라이언트가 설치되어 있음에도 불구하고 Win2008 x64 서버에서 배포하고 실행할 수 없었습니다. 나의 새로운의 x64 시스템에서

"Could not load file or assembly 'Oracle.DataAccess' or one of its dependencies. An attempt was made to load a program with an incorrect format"

, 나는 프로젝트를 빌드 할 수 있지만 내가하려고 할 때 얻는 IDE를 통해 그것을 실행되도록 : 나는 완전히 손실입니다

"The provider is not compatible with the version of Oracle client"

합니다.

사람이 어디서 어떻게 내 64 상자의 IDE에서 디버깅 할 수있는 방법으로 Oracle.DataAccess을 참조하는 설치하는 것에 대한 자세한 지침을 공유 할 수 비슷한 설정을 가지고, 또한 64에 배포 하는가 섬기는 사람?

이렇게 어렵지 않아도됩니다.

답변

2

결국 나는 그것을 알아 냈습니다.여기에 내가 무슨 짓을 단계별 : 나는 처음부터 다시 시작하기 위해 모든 오라클 제품을 제거 내 Win7에 64의 개발 시스템

  1. (레지스트리 키와 파일/폴더를 삭제 수동 포함)

  2. 은 내가 설치
  3. 에 대한 런타임 옵션을 선택한 BOTH dev에 기계와 생산 IIS 서버
    • ON "마이크로 소프트 윈도우 (64)에 대한 오라클 데이터베이스 11g 릴리스 2 클라이언트 (11.2.0.1.0)"설치
    • 첫 번째 시도에서 설치가 PATH 환경 변수에 충분한 공간이 없다고 불평하여 설치를 취소하고 일부 경로 값을 제거해야했습니다 (설치 후 교체 됨)
    • C : \ oracle에 설치되었습니다. 그것은 C에 설치 그래서 내 기본 경로 및 client_x64은 내 집이었다 : 다음 설치 \ 오라클 \ 제품 11.2.0 \ client_x64
  4. \ "64 비트 ODAC 11.2 릴리스 3 (11.2.0.2.1) Windows x64의 경우 "BOTH dev 및 생산 mahcines.

    install.bat odp.net4 c:\oracle\odac11.2.x64 odac112x64

    • 위의 문은 내가
      • 추가 참조 Oracle.DataAccess.dll 위치에 다음 설정을 사용하여 간단한 콘솔 응용 프로그램을 구축이 시점에서
    • odac112x64라는 이름의 새로운 가정을 만들어 C : \ oracle \ odac11.2.x64 \ odp.net \ bin \ 4
    • Oracle.DataAccess 참조에 대해 CopyLocal = FALSE를 설정하십시오.
  5. 내가 다음 콘솔 응용 프로그램과 같은 연결 코드 샘플 MVC 웹 사이트 프로젝트를 생성 시스템에 모두 기록을 내 오라클 데이터베이스에 연결 "모든 프로세서"
  6. 응용을위한 구축 할 수있는 응용 프로그램을 설정하고 반환 . 나는 IDE는 32 비트이며 64 비트 Oracle.DataAccess
  7. 를로드 할 수 없습니다 때문입니다 생각

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

    • : 나는 IDE에서 로컬로 실행하면
    • 는 그것은 오류가 발생했습니다 정확한 코드를 프로덕션 서버에 게시하고 성공적으로 실행했습니다.

      • 이 시점에서 내 유일한 문제는 개발 목적으로 로컬로 실행하는 것입니다.
    • 가 나는 경우 MVC 웹 사이트를 다시 실행

      install.bat odp.net4 c:\oracle\odac11.2.x32 odac112x32

    • ODP.NET의 X32 버전입니다 "Xcopy를 배포와 ODAC 11.2 릴리스 3 (11.2.0.2.1)"를 설치 로컬로 프로젝트가 예상대로 작동했습니다!

업데이트] FOLLOW-UP 정보 # 1

: 내가 다른 서버로 동일한 단계를 적용하려고 시도하고 실패한 일이 점점 후. 문제는 "32 비트 응용 프로그램 허용"이 응용 프로그램 풀에서 TRUE로 설정되어 있다는 것입니다. 32 비트 응용 프로그램을 비활성화하면 (64 비트 만 허용) 새 컴퓨터에서 문제가 해결되었습니다.

업데이트] FOLLOW-UP 정보 # 2 : 새 컴퓨터에 ODAC 설치는 환경 경로 (I 오라클 싫어)의 설치 및 bin 디렉토리를 배치하는 데 실패했습니다. 추가되면 모든 것이 원하는대로 실행됩니다.

+0

흥미로운 점은 x32 버전이 VS와 함께 x64 Dev Machine에서 가장 잘 작동한다는 것입니다. 그것은 위에서 언급 한 것과 비슷한 경험입니다. – WCRC

0

저는 오랫동안 ODP.NET을 사용하지 않았기 때문에 마지막으로 사용했을 때의 문제점을 기억하고 있습니다.

ODP.NET 비트는 서버에 설치해야합니다 (또는 적어도 배치 된 상태 여야하지만, 어떻게 구현했는지는 확실하지 않습니다). ODP.NET의 실제 클라이언트는 Oracle 액세스에 사용되는 것과 동일한 Java 라이브러리입니다. 설치되어 있으면 기본 Java 라이브러리를 사용하여 구성 오류 또는 사용 권한 문제가 발생합니다.

그러나 IDE 메시지가 무엇인지 확실하지 않습니다.

2

내가 여기에 ODAC 설치와 함께 제공되는 오라클 11g R2 클라이언트와 윈도우 7x64에서 실행이이 수행

http://www.oracle.com/technetwork/topics/dotnet/index-085163.html

당신이 x64 버전이 로컬로 설치되어 있는지 확인하고 당신이있을 수 있습니다 uninstall-reboot-reinstall-reboot 탱고를 수행하십시오. 또한 이상한 문제를 일으켜 TNSNAMES 항목을 보았고 EZCONNECT 문자열을 사용해야했지만 문제가 아닙니다.

사실은, 나는 또한 32 비트 EF 베타를 사용하여 64 작업을 왔하고 그것을 잘 작동합니다 :

http://www.oracle.com/technetwork/topics/dotnet/downloads/oracleefbeta-302521.html

내가 EF의 implementatinon이 100 % 준비가되어 있다고 생각하지 않지만 프라임 타임 (아직 계산 된 필드에 대한보다 안정적인 지원이 있었기 때문에 DevArt 드라이버를 사용하지 못했습니다. ODP.NET EF Beta에서 Computed 또는 Identity Timestamp가 작동하지 않았습니다. 이상하게도 기본 키 NUMBER 필드가 트리거에 의해 채워졌지만).)

나는 특별한 일을 할 필요가 없었으며, 할 필요도 없었습니다. 서버 측에서도 특별한 점이 있습니다 (10g와 11gR2 모두).

관련 문제