2012-04-24 8 views
1

NHibernate設定の設定に問題があります。私は別の設定ファイルを作成すると動作しますが、次にConfiguration.configureを呼び出すと、設定ファイルの絶対パス( "C:\ My Documents ... etc ...")を指しています。私は、生産への開発から移動しようとすると問題になるので、web.configファイルで私が持っている、私はweb.configファイルに設定を移動するだろうと思ったが、それは失敗しそう:。。NHibernate設定 - web.configファイルに移動

<configSections> 
<section name="hibernate-configuration" 
    type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" /> 
</configSections> 

<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"> 
<session-factory> 
    <property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property> 
    <property name="connection.connection_string">Data Source=MyServerName;Initial Catalog=MyDatabase;Integrated Security=True</property> 
    <property name="connection.isolation">ReadCommitted</property> 
    <property name="proxyfactory.factory_class">NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu</property> 
    <property name="current_session_context_class">web</property> 
</session-factory> 
</hibernate-configuration> 

<TestFixture()> _ 
Public Class GenerateSchema_Fixture 

    <Test()> _ 
    Public Sub Can_generate_schema() 

     Dim cfg = New NHibernate.Cfg.Configuration() 
     cfg.Configure() 
     cfg.AddAssembly(GetType(Question).Assembly) 
     Dim exp As NHibernate.Tool.hbm2ddl.SchemaExport = New NHibernate.Tool.hbm2ddl.SchemaExport(cfg) 
     exp.Execute(False, True, False) 

    End Sub 


End Class 

をそして、私はこのテストを実行したときに私が手::その後、私はこのようにテストしてい

------ Test started: Assembly: ECEHire.Test.dll ------ 

Test 'ECEHire.Test.Tests.GenerateSchema_Fixture.Can_generate_schema' failed: NHibernate.HibernateException : Format of the initialization string does not conform to specification starting at index 49. 

----> System.ArgumentExceptionの:初期化文字列のフォーマットはNHibernate.Tool.hbm2ddl.SchemaExport.Execute(アクション1 scriptAction, Boolean export, Boolean justDrop) at NHibernate.Tool.hbm2ddl.SchemaExport.Execute(Boolean script, Boolean export, Boolean justDrop) GenerateSchema_Fixture.vb(19,0): at ECEHire.Test.Tests.GenerateSchema_Fixture.Can_generate_schema() --ArgumentException at System.Data.Common.DbConnectionOptions.GetKeyValuePair(String connectionString, Int32 currentPosition, StringBuilder buffer, Boolean useOdbcRules, String& keyname, String& keyvalue) at System.Data.Common.DbConnectionOptions.ParseInternal(Hashtable parsetable, String connectionString, Boolean buildChain, Hashtable synonyms, Boolean firstKey) at System.Data.Common.DbConnectionOptions..ctor(String connectionString, Hashtable synonyms, Boolean useOdbcRules) at System.Data.SqlClient.SqlConnectionString..ctor(String connectionString) at System.Data.SqlClient.SqlConnectionFactory.CreateConnectionOptions(String connectionString, DbConnectionOptions previous) at System.Data.ProviderBase.DbConnectionFactory.GetConnectionPoolGroup(String connectionString, DbConnectionPoolGroupOptions poolOptions, DbConnectionOptions& userConnectionOptions) at System.Data.SqlClient.SqlConnection.ConnectionString_Set(String value) at System.Data.SqlClient.SqlConnection.set_ConnectionString(String value) at NHibernate.Connection.DriverConnectionProvider.GetConnection() at NHibernate.Tool.hbm2ddl.SchemaExport.Execute(Action 1 scriptActionやブール輸出、ブールjustDropでインデックス49 から始まる仕様に準拠していません私はの方向に考えています)

0 passed, 1 failed, 0 skipped, took 3.30 seconds (NUnit 2.5.10). 

:web.configファイルには、私のメインのプロジェクトではなく、テストプロジェクトです。それはNHibernateのために別の設定ファイルを使わなければならないということですか?もしそうなら、私はまだ同じ問題を抱えています(私はまだ同じエラーが出ます)。

答えて

0

はい、環境ごとに異なるテストファイルとWebファイルが必要です。テスト構成では、current_session_context_classはWebであってはなりません(代わりにThreadStaticSessionContextを試してください)。

関連する問題