NHibernate连接字符串:如何指定端口号和服务器\实例?
我正在用NHibernate 2.1替换我的旧DAL。我的NHibernate配置可以在本地开发机器上运行,但不能在UAT上运行。UAT数据库是在无默认端口上的群集设置。我使用的是标准NHibernate confie文件,类似于以下内容:NHibernate连接字符串:如何指定端口号和服务器\实例?,nhibernate,configuration,database-connection,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>
<?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>
在NHibernate配置文件中,我尝试了以下组合,没有一个有效,我收到了不同的错误消息,但大多数情况下他们说无法连接
<property name="connection.connection_string">
Server=tcp:(uatserver\db01),1433;
Initial Catalog=dbname;
User ID=dbuser;
Password=userpassword</property>
尝试将服务器部件更改为:
Server=tcp:(local),12345
(或不管端口号是什么)。您只能为TCP/IP连接指定端口。尝试在单独的属性上传递端口,如下所示Server=127.0.0.1;端口=3306
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property>
<property name="connection.connection_string">Server=127.0.0.1;Port=3306;Database=test;User ID=admin;Password=admin</property>
<property name="dialect">NHibernate.Dialect.MySQL5Dialect</property>
<property name="hbm2ddl.auto">update</property>
<property name="current_session_context_class">web</property>
<mapping assembly="WebAppTest" />
</session-factory>
</hibernate-configuration>
NHibernate.Connection.DriverConnectionProvider
NHibernate.Driver.MySqlDataDriver
服务器=127.0.0.1;端口=3306;数据库=测试;用户ID=管理员;密码=管理员
NHibernate.dialogue.mysql5dialogue
更新
网状物
@Mitch:tcp是否绝对是默认的,而不是可用的共享内存或命名管道?我认为这是值得明确的,因为该端口实际上应该只通过TCP使用@Jeffrey:哪个括号?你检查过你的SQL server是否启用了TCP/IP吗?恐怕在这一点上,我建议深入研究源代码。也许NHibernate有一些特殊的逃逸规则。。。
[27 Jul 2009 18:27] NHibernate.Connection.DriverConnectionProvider
[DEBUG] Obtaining IDbConnection from Driver
Server=tcp:(local),12345
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property>
<property name="connection.connection_string">Server=127.0.0.1;Port=3306;Database=test;User ID=admin;Password=admin</property>
<property name="dialect">NHibernate.Dialect.MySQL5Dialect</property>
<property name="hbm2ddl.auto">update</property>
<property name="current_session_context_class">web</property>
<mapping assembly="WebAppTest" />
</session-factory>
</hibernate-configuration>