Excel RTD: UpdateNotify() игнорируется после повторного подключения источника данных – как принудительно обновить данныеC#

Место общения программистов C#
Anonymous
Excel RTD: UpdateNotify() игнорируется после повторного подключения источника данных – как принудительно обновить данные

Сообщение Anonymous »

Я работаю над сервером C# RTD, который подключается к источнику данных. Когда источник отключается и повторно подключается, Excel перестает отвечать на вызовы UpdateNotify(), хотя Heartbeat() продолжает регулярно вызываться.
Проблема
Сценарий:
  • Книга Excel с подключенными к ней формулами RTD мой сервер RTD
  • Источник отключается
  • Источник появляется снова
  • Мой сервер RTD успешно повторно подключается к источнику
  • Мой сервер RTD вызывает UpdateNotify(), чтобы сигнализировать Excel о доступности данных
  • Excel никогда не вызывает RefreshData() – ячейки остаются замороженными со старыми значениями.
Что работает:
  • Excel последовательно вызывает Heartbeat() каждые 15 секунд
  • Мой сервер RTD успешно повторно подключается к Источник
  • Код: Выделить всё

    UpdateNotify()Вызовы 
    выполняются без исключений.
  • Темы RTD поставлены в очередь и ждут в RefreshData().
Что не так:
  • Excel полностью игнорирует вызовы UpdateNotify()
  • Вызовы RefreshData() не происходят, несмотря на более 20 попыток UpdateNotify() в течение более 5 минут.
  • Ячейки Excel RTD отображают устаревшие данные до отключения.
Среда
  • Последняя версия Excel из Office 365, работающая на Win11 x64
  • Сервер C# RTD (.NET Framework 4.8, реализация интерфейса IRtdServer)
Вопрос
Как рабочие серверы RTD обрабатывают повторное подключение к источнику данных, когда обратный вызов COM Excel перестает отвечать на запросы UpdateNotify()?
Существуют ли какие-либо известные закономерности или обходные пути, которые заставят Excel вызывать RefreshData() после повторного подключения базового источника данных?

Подробнее здесь: https://stackoverflow.com/questions/797 ... o-force-re

Вернуться в «C#»