2009-06-29 14 views
0

私は、ASP.NET MVCアプリケーションのデータアクセス層としてNHibernateを使用しています。 IoCコンテナとしてStructure Mapも使用しています。私はシングルトンとしてセッションファクトリを作成し、リクエストごとにセッションを作成するためにStructre mapを設定しました(InstanceScope.Hybrid)。私は基本的なCRUD操作をうまくやることができます。NHibernateがデータベースから新しいデータを取得できません

ここでは、30秒ごとに実行されるバックグラウンドプロセスがあります。これには、いくつかのリポジトリ(セッションを使用)が使用されます。そして、このバックグラウンドプロセスは、何らかの理由で新しいデータを受け取ることができません。たぶん、私は単純なことを逃しています。私はグーグルで試してみましたが、役に立つものは何も見つかりませんでした。誰かが私を正しい方向に向けると、本当に助けになるでしょう。

EDIT:

私は私が第2レベルのキャッシュが有効になっている場合、私はNHibernateのと初心者です、私のHibernate設定ファイルを以下に貼り付けられていることを確認していません。

<?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> 

すでにNHibernateはを使用して、一般的なWebアプリケーションで使用されている設計/デザインパターンがあるかどうか、私は知りたい主なものは、あります。私のデータベース設定が別のアプリケーションから更新された場合、ステートレスセッションを使用して問題を解決できますか?

答えて

0

私はこの目的のために別のコンソールアプリケーションを作成することでこの問題を解決しました。エレガントなソリューションではありませんでしたが、それでも機能しました。すべてのあなたの答えをありがとう。

1

2次キャッシュを有効にしていても、NHibernate経由でデータベースを更新しているバックグラウンドプロセスがある場合、これらの変更は表示されません。このシナリオでは、2次キャッシュの使用は適切ではありません。

0

あなたのバックグループアプリケーションで消火活動を開始する前に、毎回新しいsssionを使用しますか(30秒)?

hibernate configでshow_sqlを有効にするか、hiberante profilerまたはsql profilerを使用して、SQLが毎回(30秒)起動するかどうかを調べます。

あなたの説明で問題を解決するのは難しいです。

関連する問題