인스턴스화할 수 없습니 COM+체를 통해 설치 수출 응용 프로그램
-
13-11-2019 - |
문제
가 COM+응용 프로그램을 수출하 MSI 구성 요소 서비스를 사용하여 다음에 설치되어 있는 테스트 서버입니다.웹 응용 프로그램(ASP)는 인스턴스화할 수 없습니 어떤 물체의 사용에서 COM+응용 프로그램.
COM+응용 프로그램으로 구성 Dll 을 내장 VB6.한 DLL 각각에 대한 데이터를 응용 프로그램 및 프레젠테이션 층을 이룹니다.웹 응용 프로그램 개체를 사용하여 프레젠테이션에서 레이어입니다.COM+Dll 을 호출의 몇 가지.NET Dll 을 통해 노출된 COM.
웹 응용 프로그램이 실행되는 HTTP 500 - Internal Server Error
이 반환됩니다.오류가 표시되지 않는 응용 프로그램이나 시스템에 로그인합니다.
했는데 인스턴스화체에서 VBScript 사용 WSH.CreateObject
및 그 개체에 대한 데이터 레이어입니다.를 만들려고 할 때에 객체는 응용 프로그램 또는 프리젠테이션 레이어 나는 다음과 같은 오류가:
Error: Could not create object named "My.ProgId"
Code: 800A801D
Source: WScript.CreateObject
하지 못하기 때문에서 VBScript,내가 의심되는 ASP 더 많은 정보를 얻으세 및 그 COM+응용 프로그램이 있는 문제입니다.
추가 정보
면을 제거 COM+응용 프로그램을 실행하려고 내 VBScript 을 테스트하는 인스턴스,저는 다른 오류가 있습니다.
Error: Could not locate automation class named "My.ProgId"
Code: 80020009
Source: WScript.CreateObject
이후 오류가 다르다,그것은 보인다 COM 최소 찾기 COM+개체 설치될 때,그것은 단지스를 인스턴스화할 수 있다.
나도 모니터링하는 스크립트와 ProcessMon.나는 볼 수 있습니다 WScript.exe (via COM)를 쿼리하는 레지스트리에 대한 ProgID,다음 CLSID.결국의 경로를 DLL 을 뽑아 다시 다음 svchost.exe 고 dllhost.exe 쿼리 레지스트리에 대한 동일한 정보를 사용하여 CLSID 도 다시 얻어 경로를 DLL.결국 DLL 가 부하 이미지 작업 그것에 대하여 다음에 대해 동일 msvbvm60.dll.나는 아무것도 표시되지 않는 실패에 액세스하 COM+DLL.
내가 지금 시도를 설치하 COM+응용 프로그램을 다른 Win2k3 서버 및 Windows XP 데스크탑.나는 같은 결과를 얻을과 함께할 수 있는 객체를 인스턴스화에서 데이터 레이어 DLL,하지만 응용 프로그램에서 프레젠테이션 층 DLLs.나 또한 시공된 사본 응용 프로그램 계층과 DLL 나 성공적으로 객체를 인스턴스화에서습니다.그러나,을 비교할 때 프로젝트 파일에 대한 두 개의 서로 다른 버전이 아무것도 눈에 띈 가능한 원인으로 이 문제입니다.
해결책
응용 프로그램 계층 DLL 을 참조 struct
에서 정의된다.NET 어셈블리입니다.오류에 의해 발생했 형식 라이브러리 포함 struct
되지 않에 등록 된 배포 기계입니다.
건축할 때다.NET 어셈블리에서는 Visual Studio,그것들이 어셈블리에 대한 형식 라이브러리와 등록합니다.할 때 응용 프로그램을 배포한다.NET 어셈블리가 사용하여 등록 regasm /codebase <assemblyname.dll>
.등록된 클래스할 수 있도록 인스턴스화할지만,그것을 등록하지 않았습니다 어떤 구조체.
솔루션 사용 regtlib.exe
등록 형식 라이브러리에 테스트 서버입니다.
오류 메시지가 도움의 모든 경고의 원인을 발견하는 문제입니다.올 Microsoft!!