none
여러 Appdomain 함께 COM 호출을 수행할 때 FatalExecutionEngineError 오류 발생 RRS feed

  • 질문

  • Youcreate 여러 Appdomain 및 시작 메서드를 선택적 매개 변수는 선택적 매개 변수를 응용 프로그램에 대 한 값을 지정 하지 않고IDispatch::Invoke 를 사용 하 여 충돌이 발생할 수 있습니다 받을 경우 ASP.NET 응용 프로그램에서 다음과 같은 오류 메시지가:
    관리 디버깅 도우미가 'FatalExecutionEngineError'에서 문제를 발견 했습니다 '<var>xxx</var>.exe'. 자세한 정보: 런타임 오류가 발생 했습니다. 오류 주소 0x20a8 스레드에서 0x0e888517에서 했습니다. 오류 코드 0xc0000005 됩니다.

    2014년 9월 30일 화요일 오후 4:00
    중재자

답변

  • 이 문제를 해결 하려면 공유 코드 예제와 변경 사항을 구현 합니다.
    [ComVisible(true)]
    [InterfaceType(ComInterfaceType.InterfaceIsDual)]
    public interface ITestInterface
    {
    .
    .
    }


    이렇게 하려면 다음 단계를 수행하십시오.
    1. 어셈블리 수준에 적용 IDispatchImplAttribute(IDispatchImplType.CompatibleImpl)제공 된 운영 체제를 사용 하 여ITypeInfo 대신 구현입니다.NET의 구현입니다.

      [assembly:IDispatchImplAttribute(IDispatchImplType.CompatibleImpl)]

      나를 통해 액세스할 수 있는 모든 형식에 대해 이러한 특성을 적용할 수 있습니다.IDispatch.
    2. 인터페이스 형식이 되도록 변경 InterfaceIsDual를 제공 하는 운영 체제ITypeInfo 구현 순수한 디스패치 인터페이스를 지원 하지 않습니다.
    3. Com에 표시 하 고 공용 인터페이스 확인 인터페이스 형식은 lib에 실제로 표시 하 고 해당 형식 정보가 형식 lib에서 찾을 수 있도록입니다.

    2014년 10월 1일 수요일 오전 4:45
    중재자