Я использую NHibernate с веб-приложением и Oracle 10g XE, и в настоящее время получаю следующую ошибку:
ORA-06413: Connection not open.
Полагаю, это проблема с моей строкой соединения. Вот моя конфигурация Hibernate в Web.config:
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory name="MyProject.MyAssembly">
<property name="connection.driver_class">NHibernate.Driver.OracleClientDriver</property>
<property name="connection.connection_string">Data Source=(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XE)));User ID=myid;Password=mypassword</property>
<property name="show_sql">true</property>
<property name="dialect">NHibernate.Dialect.Oracle10gDialect</property>
<property name="query.substitutions">true 1, false 0, yes 'Y', no 'N'</property>
<property name="proxyfactory.factory_class">NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu</property>
<mapping assembly="Domain" />
</session-factory>
</hibernate-configuration>
Я также пытался использовать следующую строку подключения:
<property name="connection.connection_string">
User ID=myid;Password=mypassword;Data Source=localhost
</property>
Это привело к следующей ошибке:
ORA-12154: TNS:could not resolve the connect identifier specified.
Может ли кто-нибудь дать представление о том, что я могу здесь делать неправильно?
Редактировать
Я создал проект консольного приложения внутри того же решения. Я создал файл hibernate.cfg.xml с теми же настройками и добавил его в этот проект. Я могу сохранять объекты без проблем.
Я переключил свою базу данных с Oracle 10g на MySQL, и она отлично работает в веб-приложении. Почему Oracle 10g работает только в консольном приложении, а не в веб-приложении?