Frage

Ich verwende NHibernate als die Datenzugriffsschicht für meine ASP.NET MVC-Anwendung. Ich bin auch Strukturkarte als IoC-Container verwendet wird. Ich habe structre Karte konfiguriert ist, eine Sitzung Fabrik als Singleton zu erstellen und erstellen Sitzungen auf einem pro Anfrage Basis (InstanceScope.Hybrid). Ich bin in der Lage grundlegende CRUD-Operationen zu tun, nur in Ordnung.

Jetzt habe ich einen Hintergrundprozess alle 30 Sekunden, die verwendet einige Repositories (was wiederum den Einsatz Sitzungen) ausgeführt wird. Und dieser Prozess im Hintergrund ist nicht in der Lage, die neuen Daten aus irgendeinem Grunde zu holen. Vielleicht bin ich dabei eine einfache Sache. Ich habe versucht, googeln, aber war nicht in der Lage, etwas Sinnvolles zu finden. Es würde mir wirklich helfen, wenn jemand mich in der richtigen Richtung.

EDIT:

Ich bin nicht sicher, ob ich die zweite Level-Cache aktiviert bin, ich bin ein Neuling mit NHibernate, Meine Hibernate-Konfigurationsdatei unter eingefügt.

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
  <session-factory>
    <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
    <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
    <property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property>
    <property name="connection.connection_string">Data Source=.\SQLEXPRESS;Initial Catalog=Map.db;Integrated Security=True</property>
    <property name="show_sql">true</property>
    <mapping assembly="Infrastructure"/>
  </session-factory>
</hibernate-configuration>

Die Hauptsache ich wissen will, ist, wenn es ein Design / Design-Muster ist, das bereits in typischen Web-Anwendungen mit NHibernate verwendet wird. Und würden mit Stateless Sitzungen lösen das Problem, wenn meine Datenbankeinstellungen aktualisiert werden von einer anderen App?

War es hilfreich?

Lösung 3

Ich löste dieses Problem, indem eine separate Konsole-Anwendung zu schaffen nur für diesen Zweck. War das nicht eine elegante Lösung, aber es funktionierte noch. Vielen Dank für Ihre Antworten.

Andere Tipps

Wenn Sie die Second-Level-Cache aktiviert haben, noch ein Hintergrundprozess, der die Datenbank aktualisiert wird, ohne über NHibernate zu gehen, dann sehen Sie nicht diese Veränderungen kommen durch. In diesem Szenario ist die Second-Level-Cache nicht geeignet ist.

Verwenden Sie eine neue sssion jedes Mal (30 Sekunden), bevor Sie in Ihrer Anwendung back retreive Feuer?

show_sql in Hibernate Config aktivieren oder hiberante Profiler oder SQL Profiler suchen verwenden, ob die SQL jedes Mal ausgelöst wird (30 Sekunden).

es ist schwer, Ihr Problem mit Ihrer Beschreibung zu lösen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top