Я работаю над клиентом opc, используя стандартный стек .net от opc foundation. Вроде все работает как положено. Я могу установить сеанс, добавить подписки, элементы, получать уведомления при изменении данных ...
Проблема, с которой я столкнулся, заключается в том, что я не могу найти событие в сеансе, которое срабатывает, когда сеанс закрывается на стороне сервера.
Я тестирую с помощью Kepserver EX 6. Когда я повторно инициализирую или выключаю среду выполнения на сервере, мое событие SessionClosing не запускается, поэтому я предположил, что сервер не уведомляет клиента. Я не знаю, сработает ли он после тайм-аута или что-то в этом роде?
После этого мой объект Opc.Ua.Client.Session в клиентском коде по-прежнему показывает свойство Connected как истинное. Только когда я пытаюсь сделать что-то вроде добавления новой подписки, я получаю исключение «Плохой сеанс».
Я мог бы перехватить исключение и восстановить новый сеанс или попытаться исправить текущий, но я бы предпочел заранее знать, что сеанс испортился. Я даже не знаю, возможно ли это.
Спасибо.
wrapped.Create