Richten Sie IIS-Arbeitsprozesse auf Anfrage ein

Ok, seltsames Setup, seltsame Frage. Wir haben eine Client- und eine Admin-Webanwendung für unsere SaaS-App, die auf asp.net-2.0/iis-6 läuft. Die Admin-Anwendung kann die in der Client-Anwendung angezeigten Optionen ändern. Wenn diese Optionen im Admin gespeichert werden, rufen wir einen Webservice auf dem Client über den Admin auf, um den Cache der Optionen für diesen bestimmten Account zu leeren.

Recently we started giving our Client application >1 Worker Processes, thus causing the cache of options to only be cleared on 1 of the currently running Worker Processes.

Also habe ich offensichtlich andere Möglichkeiten, dieses Problem zu beheben (wie auch immer der Input geschätzt wird), aber meine Frage ist: Gibt es irgendeine Möglichkeit, durch eine Web-Anfrage auf jeden Worker-Prozess zu zielen/zu iterieren?

3

2 Antworten

Ich mache hier einige Annahmen für diese Antwort ....

  1. Ich gehe davon aus, dass die Client-Anwendung eine der .NET-Caching-Klassen verwendet, um die Optionen Ihrer Anwendung zu speichern?

  2. Wenn Sie "flush" sagen, meinen Sie, dass Sie sie in eine Konfigurationsdatei oder eine db-Tabelle zurückspeichern?

Da die Cache-Objekte und Daten nicht zwischen Prozessen gemeinsam genutzt werden, benötigen Sie einen Mechanismus, um dem Code, der auf dem anderen Arbeitsprozess ausgeführt wird, zu signalisieren, dass er die Optionen erneut in den Cache einlesen oder den Prozess neu starten muss (was nicht der Fall ist) genau passend und höchstwahrscheinlich unerwünscht).

Wenn Sie keinen Zugriff auf die Client-Quelle haben, um sie zu modifizieren, um entweder die Konfigurationsdatei der Optionen oder die DB-Tabelle anzusehen (sagen wir mal, dass Sie eine SqlCacheDependency verwenden), sind Sie mit diesem Verhalten offenbar nicht zufrieden.

0
hinzugefügt

Ich habe vollen Zugriff auf Admin und Client, durch Cache, ich meine. Net-Cache-Objekt. Mit Flush möchte ich das Objekt aus dem Cache-Objekt entfernen.

Ich bin mir bewusst, dass beide Worker-Prozesse die Cache-Daten nicht teilen. Das ist eine Art meines Rätsels)

Das System ist die Art, die Notwendigkeit zu entfernen, sql jede neue Sitzung zu treffen, die hereinkommt. So versuche ich, eine Lösung zu finden, die jedem Arbeitsprozess nur sagen kann, dass der Cache gelöscht werden muss, ohne sql zu erhalten beteiligt.

0
hinzugefügt