2013-08-14 10 views
2

새 Windows 8 64 비트 시스템에서 C#을 컴파일 한 후 OPC 클라이언트 응용 프로그램에서 사용 가능한 서버 목록을 가져 오는 동안 다음 오류가 발생하기 시작했습니다.C# OPC 클라이언트가 서버 목록을 가져 오지 못함

는 "OpcNetApi.Com는 유형 'OpcRcw.Comn.IOPCServerList2'를 인터페이스하는 유형 '시스템 .__하여 ComObject'의 COM 개체를 캐스팅 할 수 없습니다.이 작업이 실패로 인해 { 'IID 인터페이스의 COM 구성 요소에 대한 QueryInterface 호출 (HRESULT에서 예외 : 0x80040154 (REGDB_E_CLASSNOTREG)). "오류로 인해 실패했습니다."라는 오류 메시지가 나타납니다. 9ED0B56C-AD9E-43EE-8305-487F3188BF7A

어떤 이유가있을 수 있습니까? OPC.NET의 추가 정보에서 인용

+0

C#을 32 비트 또는 64 비트로 컴파일 했습니까? 32 비트 프로세스에서 Opc이 실행 중입니까? –

+1

64 비트로 컴파일되었습니다. 이제는 32 비트로 돌아가서 문제가 해결되었습니다. @brainwipe 내가 대답 할 수 있도록 대답으로 써주세요. – Demir

+0

걱정 마, 나는 카밀의 대답을 더 좋아한다. :) –

답변

8

:

The .NET COM interop assemblies are built against the 32-bit versions of the proxy/stubs. This means that any .NET application running on x64 systems must be compiled and run as a 32-bit application

+0

우수 감사합니다! – carny666

7

안녕하세요 :이 문제 재배포 105.1 OPC의 .NET API의 OPC의 닷넷 API 2.00을 설치 한 다음 OPC 핵심 구성 요소 재배포 (64) 105.1를 설치 해결합니다. 이 기능을 사용하면 64 비트에서 실행되는 32 비트 클라이언트에서 실행되는 OPC 서버에 연결할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 제 경우에는 OPC Core Components 3.0.106 (최신) 설치를 시도했지만 문제가 해결되지 않았습니다. 몇 가지 일을했는데 특정 문제가 해결되었는지 모르겠지만 syswow64에서 "OpcEnum.exe"를 삭제하고 핵심 구성 요소 2.0.2.30을 설치하고 installutil을 사용하여 서비스로 OpcEnum을 설치했습니다. - 설치). 이 문제가 발생하면 여러 버전의 Core Components를 설치하십시오. –

+0

더 많은 테스트가 끝나면 핵심 구성 요소를 설치하기 전에 이전 dll과 opcenum을 삭제하면 문제가 해결된다고 생각합니다. –

+0

여기에 제안 된대로 임의의 CPU 및 VSX 용 최신 x64 OPC 코어 구성 요소를 설치하면 OPC 연결 문제가 해결되었습니다. –

2

그리고 그 재배포 가능 파일 (OPC .NET API OPC .NET API 2.00 재배포 가능 파일, OPC 핵심 구성 요소 재배포 가능 파일) 및 라이브러리 (OpcNetApi.dll, OpcNetApi.Com.dll, OpcNetApi.Xml.dll ...)를 설치하지 마십시오.)은 동일한 버전이어야합니다.