nhibernate 连接 oracle

oracle我用的10g,下载客户端安装之后发现几个问题,记录如下:

支持windows7

oracle10g客户端只支持到6.0版本的Windows,不支持windows 7,需要做如下设置:

解压后修改client/install/oraparam.ini文件
[Certified Versions]
#You can customise error message shown for failure, provide value for CERTIFIED_VERSION_FAILURE_MESSAGE
Windows=5.0,5.1,5.2,6.0,6.1  (在window后面添加 6.1)
在 [Windows-6.0-optional] 后面添加如下选项:
[Windows-6.0-optional]
[Windows-6.1-required]
#Minimum display colours for OUI to run
MIN_DISPLAY_COLORS=256
#Minimum CPU speed required for OUI
#CPU=300
[Windows-6.1-optional]

分别修改如下文件
client/stage/prereq/client/refhost.xml
client/stage/prereq/client_prereqs/client/refhost.xml
<!-- Microsoft Windows Vista -->
<OPERATING_SYSTEM>
  <VERSION VALUE="6.0" />
</OPERATING_SYSTEM>

后面添加如下选项:
<!--Microsoft Windows 7-->
<OPERATING_SYSTEM>
  <VERSION VALUE="6.1"/>
</OPERATING_SYSTEM>

注意有可能有多个refhost.xml文件,都需要修改,32位的客户端可能不需要修改oraparam.ini。

连接字符串

nhibernate连接oracle的connection_string可以如下书写:

<item key="connection.connection_string">Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=服务器地址)(PORT=端口)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=数据库SID)));user id=用户名;password=密码;</item>

32位64位调试环境

我的开发环境是windows7 64位,项目设置为x86和x64两种,在ide中运行test会提示32位代码调用64位库的错误,检查发现我装了64位的oracle客户端,卸载掉,装32位的即可。

安装目录权限

安装最小版本oracle客户端组件后,运行测试类,提示:尝试读取或写入受保护的内存。这通常指示其他内存已损坏。经检查应该是权限问题,给oracle客户端目录加上认证用户完全控制权限解决。原因暂时未知。

2014-03-17补充:

最近用NHibernate连接Sql Server 2008也发现此错误, 但是相同代码在另外一台机器上可以运行。

错误提示:

异常:已捕获: "已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: SSL Provider, error: 0 - 接收到的消息异常,或格式不正确。)" (System.Data.SqlClient.SqlException)
捕获到一个 System.Data.SqlClient.SqlException: "已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: SSL Provider, error: 0 - 接收到的消息异常,或格式不正确。)"

另外在这里发现博主也遇到这个问题 http://www.cnblogs.com/liuguozhu2015/p/3413496.html

经过仔细检查,发现我的问题是优酷客户端的问题,迅雷以前装的没有影响。 使用 netsh winsock reset 重置即可。

 

posted @ 2011-08-08 20:35  xwing  阅读(3044)  评论(1编辑  收藏  举报