Вопрос

Хорошо, странная установка, странный вопрос.У нас есть веб-приложение клиента и администратора для нашего приложения SaaS, работающее на asp.net-2.0/iis-6.Приложение администратора может изменять параметры, отображаемые в клиентском приложении.Когда эти параметры сохраняются в администраторе, мы вызываем веб-сервис на клиенте из администратора, чтобы очистить кеш параметров для этой конкретной учетной записи.

Недавно мы начали предоставлять нашему клиентскому приложению >1 рабочих процессов, в результате чего кэш опций очищался только на 1 из запущенных в данный момент рабочих процессов.

Итак, у меня, очевидно, есть другие способы решения этой проблемы (однако вклад приветствуется), но мой вопрос: Есть ли способ нацелиться/пройти через каждый рабочий процесс через веб-запрос?

Это было полезно?

Решение

Для этого ответа я делаю некоторые предположения....

  1. Я предполагаю, что клиентское приложение использует один из классов кэширования .NET для хранения параметров вашего приложения?

  2. Когда вы говорите «сбросить», вы имеете в виду сбросить их обратно в файл конфигурации или таблицу БД?

Поскольку объекты и данные кэша не будут распределяться между процессами, вам нужен механизм, который будет сигнализировать коду, выполняющемуся в другом рабочем процессе, о том, что ему необходимо перечитать свои параметры в свой кэш или принудительно перезапустить процесс (что не является точно удобно и скорее всего нежелательно).

Если у вас нет доступа к исходному коду клиента, который можно изменить для просмотра файла конфигурации параметров или таблицы БД (скажем, с использованием SqlCacheDependency), я думаю, вы как бы застряли в этом поведении.

Другие советы

У меня есть полный доступ к администратору и клиенту, под кешем я имею в виду объект Cache .net.Под сбросом я подразумеваю удаление элемента из объекта Cache.

Я знаю, что оба рабочих процесса не используют общие данные кэша.Это моя загадка)

Система такая, какая она есть, чтобы исключить необходимость запускать sql при каждом новом сеансе.Итак, я пытаюсь найти решение, которое могло бы просто сообщить каждому рабочему процессу, что кеш необходимо очистить без участия sql.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top