2011-01-09 3 views
0

Ich verwende NHibernate mit einer Web-Anwendung und Oracle 10g XE, und ich bin derzeit die folgende Fehlermeldung erhalten:NHibernate Verbindungszeichenfolge Problem

ORA-06413: Connection not open.

Meine Vermutung ist es ein Problem mit meiner Verbindungszeichenfolge ist . Hier ist meine Hibernate Konfiguration in 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> 

ich auch versucht habe, mit der folgenden Verbindungszeichenfolge:

<property name="connection.connection_string"> 
    User ID=myid;Password=mypassword;Data Source=localhost 
</property> 

die in den folgenden Fehlern in Folge:

ORA-12154: TNS:could not resolve the connect identifier specified.

Könnte irgendjemand irgendeinen Einblick geben, was ich hier falsch machen könnte?

bearbeiten

habe ich eine -Konsolenanwendungsprojekt innerhalb der gleichen Lösung. Ich habe eine Hibernate.cfg.xml-Datei mit den gleichen Einstellungen erstellt und sie dem Projekt hinzugefügt. Ich kann Objekte ohne Probleme persistieren.

Ich habe meine Datenbank von Oracle 10g zu MySQL gewechselt und es funktioniert gut in der Webanwendung. Warum funktioniert Oracle 10g nur in der Konsolenanwendung und nicht in der Webanwendung?

+0

sieh dir das an: http://www.dba-oracle.com/t_ora_06413_connection_not_open.htm – Falcon

+0

@Falcon: Ich habe auf diesem Fehler vor dem Posten hier gesucht, aber es war mein Verständnis, dass der Fehler "ungültiger Pfad" (Fehler 3807408 Ich glaube) durch Klammern verursacht wurde in späteren Releases behoben. –

+0

Was ist mit der Dateierweiterung? – Falcon

Antwort

1

Anscheinend ist Oracle 10g auf 64-Bit-Systemen ein wenig knifflig. Die beste Option schien der Wechsel zu MySQL zu sein.

0

Ich habe diesen Fehler heute konfrontiert und interessante Sache gefunden. Ich versuchte XE Client oracle.dataaccecc.dll als Referenz und vor der Anweisung

 sessionFactory = new NHibernate.Cfg.Configuration().Configure(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "NHibernate\\Oracle.cfg.xml")).BuildSessionFactory(); 
     

i eingegeben, diese Zeilen zu verwenden:

 
OracleConnection conn = new OracleConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings["connString"].ConnectionString); 
      conn.Open(); 
conn.Close(); 

Und alles zu arbeiten begann.