Мы создаем в режиме реального времени веб-систему мониторинга для приложений .NET (исполняемый файл ASP.NET и Windows). Эти приложения могут запускать длительные операции, и статистика отображается в режиме реального времени на веб-странице.Мониторинг приложений в реальном времени .NET без опроса клиентов
Для ASP.NET мы обнаружили, что SignalR - идеальное решение: длительная работа (даже вызванная простой обратной почтой WebForms) периодически вызывает функции клиентской стороны JS через SignalR RPC для обновления страницы мониторинга. Но мы нанесли 2 оговорки:
В ASP.NET нам нужно отслеживать несколько различных приложений, расположенных в нескольких разных виртуальных каталогах. Как мы перемещаем данные из этих разных приложений на одну страницу мониторинга HTML?
Другое приложение представляет собой консольный исполняемый файл .NET Windows, который периодически запускается по расписанию. Как мы нажимаем статистику времени выполнения на одну и ту же страницу мониторинга HTML? Одна вещь приходит на ум - иметь EXE хранить временную статистику в БД и клиент извлекать те же данные из БД, но мы бы хотели избежать опроса. Другое - периодически с заданными интервалами EXE вызывал WebApp, передавая данные - и WebApp передавал бы его клиенту через тот же вызов SignalR. Но есть ли лучшие способы?
Было бы выгоднее запускать концентратор в качестве службы Windows, и все контролируемые приложения вызывают его методы и, в свою очередь, вызывают методы приложения мониторинга для отображения данных? Или у самого приложения для мониторинга есть хаб, который все остальные приложения вызовут достаточно? –