NHibernate没有连接到sql server

时间:2010-03-24 14:04:20

标签: c# .net sql-server nhibernate connection

当我设置常规连接时,它可以工作,但是当我尝试使用nhibernate,hibernate.cfg.xml时,我收到以下错误。

Message =“建立与SQL Server的连接时发生与网络相关或特定于实例的错误。未找到服务器或无法访问服务器。验证实例名称是否正确以及是否配置了SQL Server允许远程连接。(提供程序:SQL网络接口,错误:26 - 错误定位指定的服务器/实例)“    Source =“。Net SqlClient Data Provider”

这是什么原因,我该如何解决?

我怀疑这是网络或SQL Server配置错误。

<?xml version="1.0" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >
  <session-factory>
    <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
    <property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property>
    <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
    <property name="connection.connection_string">Server=(ServerName\DEV_ENV);Initial Catalog=dbName;User Id=SA;Password=PASS</property>

    <property name="proxyfactory.factory_class">NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu</property>

  </session-factory>
</hibernate-configuration>

4 个答案:

答案 0 :(得分:2)

您的连接字符串是否正确?

http://www.connectionstrings.com/sql-server-2005

答案 1 :(得分:2)

尝试使用相同的连接字符串连接到服务器,但使用其他数据访问技术,例如纯ADO.NET。

如果失败,那么这不是NHibernate的问题 可能您的连接字符串或某些SQL服务器设置不正确,如错误消息中所示:

“验证实例名称是否正确,并且SQL Server配置为允许远程连接。”

答案 2 :(得分:2)

这是我用于SQL SERVER 2005/2008的十几个应用程序的格式

data source=COMPUTERNAME;User Id=USERNAME;Password=PASSWORD;database=DATABASENAME

或者如果您需要实例名称

data source=COMPUTERNAME\SERVERINSTANCE;User Id=USERNAME;Password=PASSWORD;database=DATABASENAME

用大写字母替换占位符。 还要确保已设置sql-server以允许Sql Server Authentication的连接,而不仅仅是Windows Authentication。 检查你的防火墙

答案 3 :(得分:2)

我在同一个应用程序中编写了一小段代码,用相同的连接字符串打开一个原始的ado.net连接,然后就可以了。

然后我将该连接字符串粘贴到nhibernate的配置文件中,然后开始工作。

当我比较给出错误的原始字符串和新的连接字符串时...我看不出任何差别......不知道发生了什么......完全难倒......无论如何问题已经解决了......希望这有助于某人。