2017-02-22 4 views
0

Azure Service Fabric에 ASP.NET WebApi 서비스를 배포하려고합니다.
이 서비스는 regsvr32가있는 일반 컴퓨터에 등록 될 수학 COM 구성 요소 (32 비트)를 사용합니다. Azure 서비스 패브릭 레지스터 COM 구성 요소

이 솔루션은 로컬 Service Fabric 클러스터 (예 : Windows Server 2012 R2)에서 완벽하게 작동합니다. 불행히도 해당 구성 요소에 사용할 수있는 관리되는 dll이 없기 때문에 코드를 모두 직접 작성하고 싶지는 않습니다.

제 질문은이 서비스를 Azure에서 호스팅 한 서비스 패브릭에 배포 할 수 있습니까?
그렇다면 어떻게?

+0

안녕하세요, 솔루션을 찾았습니까? 나는 같은 문제를 가지고있다. –

답변

0

이 COM을 시작 프로그램을 통해 regsvr32와 함께 설치하고 해당 프로그램이 작동하는지 확인할 수 있습니다.

Here are some notes on Startup Tasks.

+0

당신 regsvr32 뜻인가요? 우리는 그것을 시도 할 것이다, 고마워. – djflocko

1

PInvoke를 통해 로컬 클러스터에서 어떻게 호출하고 있습니까? 아이디어 몇 가지 도움 :

당신은 COM Interop을 사용할 수

tlbimp YourComDll.dll /out: YourDotNetWrapper.dll

그런 다음 서비스 패브릭 서비스에서 YourDotNetWrapper.dll를 사용합니다. COM 구성 요소의 "xcopy"스타일 배포로 도망 갈 수 있습니다. 즉, 프로젝트의 리소스로 포함시키고 출력 폴더에 복사합니다. bin/Release.

여전히 등록해야하는 경우 Process.Start("regsvr32...") 또는 via code (PInvoke) 코드로 등록 할 수 있습니다. 서비스 패브릭에 대한 권한을 높여야 할 수도 있습니다.

레지스트리 스팸 방지를 위해 레지스트리를 한 번만 등록하는 메커니즘이 필요합니다. 아마도 Reliable Dictionary of [NodeName],[IsOurComRegistered] 일 수도 있고 등록하기 전에 등록되어 있는지 확인할 수도 있습니다.

행운을 빈다.

관련 문제