2013-02-23 15 views
8

Come scrivere la stringa di connessione corretta per Nhibernate utilizzando SQL Server 2012?Stringa di connessione errata NHibernate 3.3

Devo scrivere anche il nome del database?

Errore: ottengo errore sbagliato “catalogo iniziale”

stringa di connessione errato per NHibernate (Copio questa stringa di connessione dal mio server):

<?xml version="1.0" encoding="utf-8" ?> 
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"> 
    <session-factory> 
    <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property> 
    <property name="dialect">NHibernate.Dialect.MsSqlCeDialect</property> 
    <property name="connection.driver_class">NHibernate.Driver.SqlServerCeDriver</property> 
    <property name="connection.connection_string">Data Source=RAFAL-KOMPUTER\MSSQLSERVER4;Initial Catalog=rafal;Integrated Security=True</property> 
    <property name="show_sql">true</property> 
    </session-factory> 
</hibernate-configuration> 

copio stringa di connessione da questa parte : enter image description here

Sto provando anche questo ma non aiuta.

<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property> 
    <property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property> 
    <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property> 
    <property name="connection.connection_string">Data Source=RAFAL-KOMPUTER\MSSQLSERVER4;Initial Catalog=rafal;Integrated Security=True</property> 

I don`t know how corretta configurare per SQL Server 2012

risposta

7

Il primo frammento non dovrebbe funzionare, mentre il conducente è per CE (Compact Edition).

Il secondo sembra migliore, e ancora più funziona per me. (vedi di più qui http://www.connectionstrings.com/sql-server-2012). La cosa più importante è avere le impostazioni corrette del nome del provider (controllare qui: https://stackoverflow.com/a/8150792/315850). Prova questo frammento rettificato (giusto per essere sicuri che tutte le parti siano impostate correttamente)

<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property> 
<!-- to profit from features in 2012, use its dialect --> 
<property name="dialect">NHibernate.Dialect.MsSql2012Dialect</property> 
<property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property> 
<!-- the simplest connection string --> 
<property name="connection.connection_string">Data Source=RAFAL-KOMPUTER\MSSQLSERVER4;Database=rafal;Trusted_Connection=True;</property> 

Dobbiamo essere sicuri che il driver corretto è utilizzato (non CE o qualsiasi altro allora NHibernate.Driver.SqlClientDriver che significa System.Data.SqlClient)

doppio Verificare che il 1) SQL server e istanza denominata è: RAFAL-KOMPUTER\MSSQLSERVER4 e 2) il nome del database è: rafal e 3) i dati di accesso ha i diritti di accesso ad esso, questo deve lavorare

+0

Ora ottengo questo errore -> Si è verificato un errore relativo alla rete o specifica dell'istanza mentre stabilisce una connessione a SQL Server. Il server non è stato trovato o non era accessibile. Verificare che il nome dell'istanza sia corretto e che SQL Server sia configurato per consentire le connessioni remote. (provider: provider di memoria condivisa, errore: 40 - Impossibile aprire una connessione a SQL Server) –

+0

Come ti ho detto, con le tue seconde impostazioni, sono riuscito a eseguirlo! Quindi il problema è altrove. Forse il servizio Browser non è in esecuzione, forse TCP non è abilitato .... Altre parole. La configurazione di NHibernate è ora corretta (direi) e il problema è altrove. Suggerisco, prova a cercare qui su SO il "A network related ...." Molto presto dovresti ottenere qualche suggerimento –

+0

http://stackoverflow.com/questions/1391503/un-network-related-or-instance-specific -Errore-occurred-while-stabilire-a-conne –

0

basta sostituire: SqlServerCeDriver da SqlClientDriver come di seguito:

Sostituire: <property name="connection.driver_class">NHibernate.Driver.SqlServerCeDriver</property>

By: <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>

Problemi correlati