문제

가 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!!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top