我使用NHibernate与Web应用程序和Oracle 10g XE,目前我得到了以下错误:NHibernate的连接字符串问题
ORA-06413: Connection not open.
我的猜测是它与我的连接字符串的问题。下面是我的Web.config Hibernate配置:
<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,并且它在Web应用程序中正常工作。为什么Oracle 10g只能在控制台应用程序中运行,而不能在Web应用程序中运行?
看看这个:http://www.dba-oracle.com/t_ora_06413_connection_not_open.htm – Falcon 2011-01-09 22:31:04