2015-02-02 2 views
0

나는 서버 측에서 Dynamics Axe 2009에 통합하고 싶은 .NET 4.0 dll을 가지고 있습니다. 클라이언트 측 (RunOn : client)에서는 32 비트 DLL로 정상적으로 작동합니다. 하지만 서버 측 (RunOn : 서버)에서는 작동하지 않습니다. (1) 나는 AOS의 bin 폴더에 64 비트 DLL의 인스턴스를 복사 (2) 내가는 RegAsm.exe와 레지스트리에 필요한 항목을 추가 : 여기 Dynamics AX 2009에서 COM 객체를 서버 측에 통합하는 방법은 무엇입니까?

내가 할 것입니다.

나는 다음과 같은 코드를 사용 후 :

server static void ComIntegrationTest(Args _args) 
{ 
    COM com; 
    ; 
    new InteropPermission(InteropKind::ComInterop).assert(); 
    com = new COM('{A2686EE2-8382-3D04-B908-31AF4E5AF5B5}'); 
    CodeAccessPermission::revertAssert(); 
} 

나는 다음과 같은 오류 메시지가 나타납니다 클래스의 COM 개체 '{A2686EE2-8382-3D04-B908-31AF4E5AF5B5}'을 만들 수 없습니다입니다. 개체가 'MSS2008R2-AXAOS'컴퓨터에 올바르게 등록되었는지 확인하십시오. 객체 'COM은'나는 X COM 클래스 래퍼 마법사 ++ 클래스의 COM 객체를 포장하고 래퍼 클래스의 인스턴스를 만들려고하면, 나는 오류 메시지가 다음과 같은 수신

을 만들거나 할 수 없습니다 요청을 'InteropPermission'형식의 사용 권한이 실패했습니다. 개체 'COM'을 (를) 만들 수 없습니다.

편집 :

그것을 할 수없는 경우, 어떻게 내가 .NET 4.0과 역 동성 도끼 2009 통합 할 수 있습니다?

Dynamics Axe 2009는 .NET 3.5 또는 이전 버전의 .NET과 만 호환되므로 GAC에있는 .NET 4.0 dll을 직접 참조 할 수 없습니다.

+0

AX2009에 대해 이전에이 질문을 보지 못했지만 놀랍습니다. 아래는 COM 객체를 만드는 방법에 대한 링크입니다. 위의 내용을 읽으면서 이미 올바른 단계를 모두 거친 것처럼 보입니다. http://blogs.microsoft.co.il/arik/2011/05/30/how-to-use-a-net-4-based-dll-from-net-2-based-application/ –

답변

1

나는 당신이 혼합하고 있다고 생각합니다. 닷넷과 COM 통합, 그들은 다른 행성에 살고 있습니다.

strongly sign .Net 어셈블리 인 경우 register in GAC이어야합니다.

this problemthis description part 1part 2도 참조하십시오.

+0

감사합니다. 너의 답. Dynamics Axe 2009에서는 GAC에 등록 된 clr 개체로 서명 된 .NET 3.5 DLL 만 사용할 수 있습니다. .NET 4.0을 사용하는 타사 DLL이 있습니다. 따라서이를 수행 할 수 없습니다. 따라서 COM 통합을 시도하고 있습니다. 그것은 Axapta 3.0에서 잘 작동합니다. – user3036220

+0

COM 또는 .Net DLL? –

+0

COM 통합을 말하면 다음 명령을 사용하여 .NET DLL을 레지스트리에 등록합니다. regasm/tlb : MyWrapper "MyWrapper.dll". 그리고 나서 Dynamics Ax : Com com = new COM ('{A2686EE2-8382-3D04-B908-31AF4E5AF5B5}')에서 참조하십시오. – user3036220