2013-02-23 15 views
8

Làm thế nào để viết chuỗi kết nối đúng cho Nhibernate bằng cách sử dụng SQL Server 2012?Kết nối sai chuỗi NHibernate 3.3

Tôi có nên viết tên cơ sở dữ liệu không?

Lỗi: tôi nhận lỗi với sai “Danh mục ban đầu”

chuỗi kết nối sai cho NHibernate (sao chép chuỗi kết nối này từ máy chủ của tôi):

<?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> 

sao chép chuỗi kết nối từ phần này : enter image description here

Tôi cũng đang cố gắng nhưng không giúp được gì.

<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> 

tôi don `t biết làm thế nào đúng cấu hình cho SQL Server 2012

Trả lời

7

Đoạn đầu tiên không nên làm việc, trong khi lái xe là cho CE (phiên bản rút gọn).

Cái thứ hai trông đẹp hơn và thậm chí nó còn hiệu quả hơn đối với tôi. (xem thêm tại đây http://www.connectionstrings.com/sql-server-2012). Điều quan trọng nhất là phải có các cài đặt chính xác của tên Nhà cung cấp (xem tại đây: https://stackoverflow.com/a/8150792/315850). Hãy thử đoạn điều chỉnh này (chỉ để đảm bảo rằng tất cả các bộ phận được thiết lập một cách chính xác)

<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> 

Chúng ta phải chắc chắn rằng điều khiển chính xác được sử dụng (không CE hoặc bất kỳ khác sau đó NHibernate.Driver.SqlClientDriver có nghĩa System.Data.SqlClient)

đúp Kiểm tra xem 1) SQL máy chủ của bạn và đặt tên ví dụ là: RAFAL-KOMPUTER\MSSQLSERVER4 và 2) tên cơ sở dữ liệu là: rafal và 3) đăng nhập của bạn có quyền truy cập vào nó, điều này phải làm việc

+0

Bây giờ tôi nhận được lỗi này -> Một lỗi liên quan đến mạng hoặc dụ cụ thể xảy ra trong khi thiết lập kết nối đến SQL Server. Máy chủ này không tìm thấy hoặc không thể truy cập được. Xác minh rằng tên cá thể là chính xác và SQL Server được cấu hình để cho phép các kết nối từ xa. (nhà cung cấp: Nhà cung cấp bộ nhớ chia sẻ, lỗi: 40 - Không thể mở kết nối với SQL Server) –

+0

Như tôi đã nói với bạn, với cài đặt thứ hai của bạn, tôi đã có thể chạy nó! Vì vậy, vấn đề là ở nơi khác. Có thể Dịch vụ trình duyệt không hoạt động, Có thể TCP không được bật .... Các từ khác. Các cấu hình của NHibernate là ngay bây giờ chính xác (tôi sẽ nói) và vấn đề là ở nơi khác. Tôi đề nghị, cố gắng tìm kiếm ở đây trên SO "Một mạng liên quan ...." Rất sớm, bạn sẽ nhận được một số gợi ý –

+0

http://stackoverflow.com/questions/1391503/a-network-related-or-instance-specific -error-happen-while-establish-a-conne –

0

chỉ cần thay thế: SqlServerCeDriver bởi SqlClientDriver như sau:

Thay thế: <property name="connection.driver_class">NHibernate.Driver.SqlServerCeDriver</property>

bởi: <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>