2011-03-29 7 views
4

웹 서버를 이동하려고합니다. 우리의 응용 프로그램 (친절)은 VB6에서 1998 년에 다시 쓰여졌다. 새로운 서버 (Windows Server 2008 R2 64 비트)에서 작업하고 있습니다. 그러나 내 컴퓨터 (Windows 7 64 비트)에서 소스 코드를 가져 와서 서버에 exe 파일을 전송하면이 오류로 데이터베이스에 연결하려고 할 때 응용 프로그램이 과열됩니다. "오류 430 (클래스는 지원하지 않습니다 자동화 또는 예상 인터페이스를 지원하지 않음) "VB6 응용 프로그램은 다시 컴파일 한 후 Server 2008에서 작동하지 않습니다.

프로젝트는 Microsoft Activex Data Objects 2.8 Library를 참조합니다. 오류가있는 행

Set conn = New adodb.Connection 

그래서 실제로 데이터베이스에 연결하려고하는 것이 아니라 객체를 만들려고 할 때 완전히 폭발하고 있습니다.

누구든지 이런 종류의 오류가 있습니까? 아니면 나를위한 제안? 구글은 몇 가지 가능성을 가지고 있었지만 그 중 아무 것도 펼쳐지지 않았다. 그들 중 대부분은 공용 컨트롤과 "프로젝트 호환성"을 사용해야했지만 "무인 실행"으로 실행되는 앱은 선택할 수 없습니다 (프로젝트 속성에서는 완전히 비활성화되어 있습니다).

+0

최소한의 프로젝트 샘플을 만들려고 했습니까? 당신의 선언은 어때? – MicSim

+0

MicSim 미안 해요. 오늘 밤 집에 가면 이걸 시험해 보겠습니다. (제 9-5 일에는 문제가 없으므로 코드는 가정용 기계에만 있습니다.) 하지만 나는 conn이 ADODB.Connection으로 Dim conn으로 선언된다는 것을 상대적으로 확신합니다 (초기 바인딩, 늦지 않음, 늦은 바인딩을 시도 할 것입니다). –

+0

늦은 바인딩으로 문제가 해결되었습니다. 코딩이가는 한 최적이 아닙니다.하지만 적어도 작동합니다. –

답변

4

Microsoft가 SP1에서 도입 한 MDAC 로의 새로운 변화. 이 MSDN Forum Thread을 확인하십시오. 해결 방법에 대한 몇 가지 제안 사항이 있습니다. 현재로서는 Microsoft의 수정 사항이 없습니다.

32 비트 Windows 7에서이 문제가 발생하여 SP1을 롤백했습니다. 제안의

하나는 않은 서비스 포장 기계에서 하나 업데이트 된 (깨진) MDAC DLL을 교체하는 것입니다 :

  1. 열기 Regedit를이

  2. HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\TypeLib\{2A75196C-D9EB-4129-B803-931327F72D5C}
  3. 오른쪽 클릭을 찾습니다 권한, 고급, 소유자, 관리자로 변경 소유자, OK, OK를 클릭

  4. 실행 C:\Windows\Microsoft.NET\Framework\v4.0.30319\regtlibv12 -u "%CommonProgramFiles(x86)%\system\ado\msado28.tlb"

  5. Win32 RTM/Win2008R2 RTM에서 로컬 컴퓨터로 msado28.tlb을 복사하고 다음 단계의 폴더를 기록하십시오.

  6. 실행 C:\Windows\Microsoft.NET\Framework\v4.0.30319\regtlibv12 "{path}\msado28.tlb"

이 단계는 64 비트 Windows 용입니다. 경로 조정을 위해 32 비트에 대해서도 동일해야합니다.

+0

고맙습니다. 나는 어제를 조사 할 때 그 실을 만나지 않았다. 나는 그 제안을 오늘 밤 시도 할 것이다. –

+0

나는 그 해결책을 시도했지만, 내가 제대로하지 않았거나 가지고있는 특정 문제에 대해 효과가 없다. 그러나이 기사에서는 후기 바인딩에 대해 언급했으며 DID가 내 문제를 해결 했으므로 링크에 대해 감사드립니다. –