두 개의 Windows 서비스가 하나의 서비스 (service1)가 두 개의 OPC-UA 서버에 연결되어있어 제대로 작동합니다. 다른 Windows 서비스 (service2)는 OPC-UA Foundation의 .NET 참조 스택과 동일한 연결 코드를 사용하는 동일한 두 OPC-UA 서버에 연결됩니다.OPC-UA BadSecureChannelClosed
Service1은 OPC-UA 서버에 모두 연결할 수 있으며 데이터를 성공적으로 폴링합니다. Service2를 배포하는 동안 Service2는 두 OPC-UA 서버의 값을 연결하고 읽을 수도 있습니다. 이 시점에서 모든 것이 잘되었습니다.
그러나 이제는 코드를 변경하지 않고 잠시 후. Service2는 Session.Create를 수행 할 때 더 이상 OPC-UA 서버 중 하나에 연결할 수 없으며 간단히 ServiceResultException BadSecureChannelClosed (2156265472)로 응답합니다.
문제 해결 시작 : 우리 고객 사이트에는 프로덕션 환경에서 동일한 설치 프로그램 설치를 실행하는 테스트 서버가 있습니다. 즉, Service1과 Service2는 테스트 서버에서 실행되고 두 서버와 동일한 방식으로 통신합니다 OPC-UA 서버.
테스트 서버에서 서비스를 끄면 Service2의 BadSecureChannelClosed 오류가 사라집니다 (그러나 Service2는 여전히 두 개의 OPC-UA 서버 중 다른 하나와 통신 할 수 있음). 프로덕션 서버에서 모든 것이 예상대로 작동하도록합니다.
OPC-UA 서버에서 세션과 연결의 한계가 무엇인지 궁금합니다. OPC-UA 서버는 SINUMERIK 840d 유형입니다. Siemens에게 세션 등의 문제를 해결하기 위해 ServerDiagnostics 객체를 활성화 할 수 있는지 물어 봤지만 가능하지 않다고 대답했습니다. 나는이 물체가 가능하게하는 것이 필수적이라고 생각했다.
누구나 내게이 문제를 일으킬 수있는 힌트를 줄 수 있습니까? 예를 들어 연결을 만드는 동안 어떤 한계와 일들에 대해 생각해야할까요? 독특한 무엇이 필요합니까? ApplicationName? SessionName? 겉으로보기에는 - "임의"BadSecureChannelClosed 오류가 발생할 수 있습니다. Create Session 호출에서 updateBeforeConnect = true를 사용하고 있습니다. 그리고 하드 코드 된 사용자 이름과 암호로 UserIdentity를 사용합니다.
16 : 58 :
또 다른 이상한 증상은 (몇 주 전에 존재하지 않는 그 오류) UaExpert로 연결할 때 BadSecureChannelClosed로 응답이 OPC-UA 서버, 그것은 검색 오류를 제공한다는 것입니다 41.806 | 자동 업데이트 | 현재 버전 정보를 가져 오는 동안 오류가 발생했습니다 : 호스트 updates.unified-automation.com을 찾을 수 없음
16 : 58 : 35.404 | DiscoveryWidget | 디스커버리 opc.tcp의 GetEndpoints : //192.168.0.200 : 4840 실패 (BadCommunicationError)
16 : 58 : 35.401 | DiscoveryWidget | Discovery FindServers on opc.tcp : //192.168.0.200 : 4840 failed (BadCommunicationError)
답장을 보내 주셔서 감사합니다. ExtensionObjects에 관해서는 ServerDiagnostics 객체를 읽을 수는 있지만 데이터를보기 위해 활성화 할 수는 없습니다. ServerDiagnostics를 활성화하기 위해 다른 구성을해야하는지 알고 있습니까? 그렇지 않은 경우 어떻게하면 내가 연결 한 세션 수 등을 볼 수 있습니까? enabledFlag에 true로 쓰려고하면 쓸 수 없다고 표시됩니다. 이미지를 참조하십시오. https://cdn.pbrd.co/images/BlFt52NrP.png –
서버는 진단 기능을 지원하는 데 필요하지 않습니다. –
ExtensionObjects에 대한 참고 사항을 추가했습니다. ExtensionObjects는 문제를 좀더 자세히 설명합니다. –