문제

내 컴퓨터의 Windows Media Player COM 객체를 인스턴스화하려고합니다.

Guid mediaPlayerClassId = new Guid("47ac3c2f-7033-4d47-ae81-9c94e566c4cc");
Type mediaPlayerType = Type.GetTypeFromCLSID(mediaPlayerClassId);
Activator.CreateInstance(mediaPlayerType); // <-- this line throws

마지막 줄을 실행할 때 다음과 같은 오류가 발생합니다.

System.IO.FileNotFoundException was caught
  Message="Retrieving the COM class factory for component with CLSID {47AC3C2F-7033-4D47-AE81-9C94E566C4CC} failed due to the following error: 80070002."
  Source="mscorlib"
  StackTrace:
       at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandle& ctor, Boolean& bNeedSecurityCheck)
       at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean fillCache)
       at System.RuntimeType.CreateInstanceImpl(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean fillCache)
       at System.Activator.CreateInstance(Type type, Boolean nonPublic)
       at System.Activator.CreateInstance(Type type)
       at MyStuff.PreviewFile(String filePath) in F:\Trunk\PreviewHandlerHosting\PreviewHandlerHost.cs:line 60
  InnerException: 

이 동일한 코드는 다른 개발자 기계 및 최종 사용자 시스템에서 작동합니다. 어떤 이유로 든 내 컴퓨터에서만 실패합니다. 원인은 무엇입니까?

도움이 되었습니까?

해결책

80070002는 파일을 찾을 수없는 오류입니다.

내 생각에 당신의 기계가 종속성을 놓치고 있다고 생각합니다. 필요한 모든 라이브러리가 설치되어 있는지 확인하려면 expens.exe를 통해 COM 구성 요소를 실행해보십시오.

다른 팁

글쎄, 0x80070002는 파일을 찾을 수 없다는 것을 의미하므로 COM 등록에있는 DLL이 실제로 귀하의 컴퓨터에 존재하는지 확인합니다.

응용 프로그램 풀이 충돌하면이 오류가 발생할 수 있습니다. 결국 더 많은 기능이나 객체 초기화가있는 경우 코드를 확인할 수 있습니다. 이로 인해 메모리 누출이 발생하고 마지막으로 응용 프로그램 풀 충돌이 발생할 수 있습니다.

더 유용한 정보. 우리는 .NET 구성 요소를로드하는 클래식 ASP 웹 앱 에서이 문제를 보았습니다. 한 앱은 괜찮 았고 다른 앱은 그렇지 않았습니다. 같은 기계? 그래서 무엇을 제공합니까? COM 구성 요소로드에 실패하는 데 적절한 오류가 발생하지 않았습니다. 오류 번호 0x80070002 만 있습니다.

결국 이것은 깨진 앱의 앱 풀을 작업 앱과 동일하게 설정하여 고정되었습니다. 앱 풀에 대한 내용은 구성 요소를 제대로로드 할 수 없으며 동일한 ID 등을 의미했습니다 (IIS 6).

해당 구성 요소에 대한 레지스트리에는 오래된 버전 번호가 많이 있었지만 Regasm은 항상 그렇게합니다. 정리에 끔찍합니다. Dev 기계의 버전 번호를 이동할 때 모두 삭제하는 작은 도구를 작성해야했습니다. 그러나이 경우 해당 버전 번호는 문제가되지 않았습니다.

결론 : 권한 문제처럼 들리지만 무엇을 알고 있습니까 ..

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