NHibernate连接字符串:如何指定端口号和服务器\实例?

Jef*_*eff 3 nhibernate configuration database-connection

我正在用NHibernate 2.1替换旧的DAL。我的NHibernate配置可以在我的本地开发机器上运行,但不能在UAT上运行。UAT数据库是在无默认端口上的群集设置。我正在使用类似于以下内容的标准NHibernate confie文件:

<?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=(local);Initial Catalog=dbname;User Id=user;Password=********</property>
    </session-factory>
</hibernate-configuration>
Run Code Online (Sandbox Code Playgroud)

我认为问题是我在NHibernate配置文件中指定连接字符串的方式,因为我现有的DAL可以使用以下连接字符串:

Data Source=uatserver\db01,1433;
        Initial Catalog=dbname;
        User ID=dbuser;
        Password=userpassword
Run Code Online (Sandbox Code Playgroud)

在NHibernate配置文件中,我尝试了以下组合,但没有任何作用,并且收到了不同的错误消息,但大多数情况下,他们说无法连接。

<property name="connection.connection_string">
        Server=tcp:(uatserver\db01),1433;
        Initial Catalog=dbname;
        User ID=dbuser;
        Password=userpassword</property>
Run Code Online (Sandbox Code Playgroud)

错误:建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称正确,并且已将SQL Server配置为允许远程连接。(提供者:TCP提供程序,错误:0-未知此类主机。)

<property name="connection.connection_string">
        Server=(uatserver\db01),1433;
        Initial Catalog=dbname;
        User ID=dbuser;
        Password=userpassword</property>

<property name="connection.connection_string">
        Server=uatserver\db01,1433;
        Initial Catalog=dbname;
        User ID=dbuser;
        Password=userpassword</property>

<property name="connection.connection_string">
        Server=(uatserver\db01, 1433);
        Initial Catalog=dbname;
        User ID=dbuser;
        Password=userpassword</property>
Run Code Online (Sandbox Code Playgroud)

这是日志的最后一行:

[27 Jul 2009 18:27] NHibernate.Connection.DriverConnectionProvider
        [DEBUG] Obtaining IDbConnection from Driver
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 5

尝试将服务器部分更改为:

Server=tcp:(local),12345
Run Code Online (Sandbox Code Playgroud)

(或任何端口号)。您只能为TCP / IP连接指定端口。