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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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