2011-04-28 2 views
0

Server.CreateObject를 사용하는 Windows 2000 Server에서 기본 ASP에서 VB6 COM 구성 요소를 인스턴스화합니다. 우리는 '잘못된 progid'오류 메시지가 나타납니다.ASP에서 VB6 COM 구성 요소를 인스턴스화하는 잘못된 ProgId

DLL이 등록되었습니다. 사실 WSCRIPT를 사용하여 구성 요소를 인스턴스화하고 실행하는 VBS 파일을 실행할 수 있으므로 구성 요소가 등록되었음을 나타냅니다.

왜 ASP에서 인스턴스를 생성하지 못합니까? 이 권한은 관련이 있습니까? 우리는 관리자 그룹에 IUSR 및 IWAM 계정을 넣는 등의 작업을 시도했지만 도움이되지 않았습니다. 우리는 DLL이 들어있는 폴더에 Everyone 액세스 권한을 부여했습니다.

다른 서버에 DLL을 등록하고 동일한 ASP 페이지를 실행할 수 있으므로 제대로 작동합니다.

한 가지 다른 점 : 서버 이름이 한 번에 변경되었을 수 있습니다 (IUSR 계정 이름이 컴퓨터 이름과 다릅니다).

도움을 주셨습니다.

-Krip

답변

0

당신은 OS를 예를들 지원 UAC를 들어, 참여하는 것을 말했다하지 않았습니다. 또한이 도서관이 어떻게 등록 되었는지도 알려주지 않았습니다.

이 항목을 자체 등록 (예 : regsvr32.exe 실행)하려고 시도했을 때 등록이 가상화 된 위치에서 종료되었을 가능성이 큽니다. 따라서 동일한 사용자 컨텍스트에서 실행되고 가상화 (Vista 인식을 선언하는 매니페스트가 없음)하에 실행되는 프로세스에 의해서만 "등록"된 것으로 간주됩니다.

사용자의 HKCU에 "사용자별로"등록 할 수도 있지만 일반적으로 특별한 조치를 취하지 않으면 발생하지 않습니다.

심지어 PDW 패키지도이 문제를 해결할 수 있지만 Installer MSI가 더 좋을 것입니다. 그냥 주위에 물건을 복사하고 regsvr32.exe를 실행하는 것은 적절한 배치가 아닙니다.

+0

다시 돌아가서 점검 하겠지만 Windows 2000 Server라고 생각합니다. 원래 우리는 구성 요소를 설치 한 설치 패키지 (setup.exe)를 실행했습니다. 그런 다음 문제 해결 중에 수동으로 regsvr32를 실행했습니다. 나는 레지스트리를 점검했고, 클래스가 KHCU가 아니라 HKLM 아래에 있었다고 확신한다. – Krip

-1

Procmon을 시작하고 앱에서 액세스하려는 레지스트리 키를 확인합니다. 그런 다음 해당 키로 이동하여 키가 가리키는 부분을 확인하십시오.

ASP에서 ProgID 이름의 철자가 잘못되었다고 생각합니다.

+0

나는 그렇게 생각하지 않는다. 독립 실행 형 스크립트 파일 (.VBS)에서 작동하며 여러 번 레지스트리에 대해 검사했습니다. 그리고 그것은 새로운 서버에서 작동합니다. – Krip

+0

질문을 잘못 읽었습니다. 허가 문제입니다. IIS에서 앱에 할당 된 사용자에게 DLL 또는 레지스트리 분기에 대한 적절한 권한이 없습니다. 아마 레지스트리에 대한 허락이 엉망이라고 생각하고 있습니다. – AngryHacker

관련 문제