У меня возникла проблема с настройкой конфигурации NHibernate. Я могу заставить его работать, если я создам отдельный файл конфигурации, а затем, когда я вызываю Configuration.configure, я указываю на абсолютный путь («C: \ Мои документы ... и т. Д.») Файла конфигурации. быть проблемой, когда я пытаюсь перейти от разработки до производства Таким образом, я думал, что переместить конфигурацию в файл 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: Формат строки инициализации не соответствует спецификации, начиная с индексом 49. в 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)
0 passed, 1 failed, 0 skipped, took 3.30 seconds (NUnit 2.5.10).
Я имею в виду, в направлении: файл web.config в моем главном проекте, а не тестовый проект. Означает ли это, что я должен использовать отдельный файл конфигурации для NHibernate. Если это так, у меня все еще такая же проблема (я все равно получаю ту же ошибку).