首页新闻找找看学习计划

诡异的 Oracle 远程连接,求大神帮忙,同一样的连接代码,Form程序通过,web程序报错。

0
悬赏园豆:10 [待解决问题]

最近新接触oracle,遇到了一个觉得诡异的问题。同样的代码,在form下可以执行,在web下不能执行。

开发环境:oracle安装在虚拟机上,本地64位 windows server 2008 + vs2010 

代码非常简单,如下:

            string strConn = "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.124) (PORT=1521)))(CONNECT_DATA=(SERVICE_NAME= orcl)));User Id=scott;Password=scott;Persist Security Info=True";

            using (OracleConnection conn = new OracleConnection(strConn))
            {
                conn.Open();
                OracleCommand comm = new OracleCommand("select DEPTNO from DEPT", conn);
                object obj = comm.ExecuteScalar();
                conn.Close();
            }

在web下调试执行到conn.Open();包如下错误:
ORA-6413: 连接未打开。

< >
分享
所有回答(2)
0

ServerVersion这里引发错误,应该是你客户端版本跟服务端的版本不太一样~~或者是服务是x86客户端是x64这样Web好像访问不了。

张小三、 | 园豆:238 (菜鸟二级) | 2014-04-16 15:44

我也想过版本问题,可是为什么form程序可以呢?这个我不太明白?

支持(0) 反对(0) 流浪漂泊 | 园豆:194 (初学一级) | 2014-04-16 17:32

@流浪漂泊: 以前我搞Web的时候就是这个Oracle的版本问题,还有Vs的生成里面也有X86 Or X64 CPU选择的,你可以也试试。Form的程序当时没有遇到这种情况过,也没考虑。这问题百分之八九十都应该是版本引起的问题。你StackTrace里面也指向了 get_ServerVersion()这里

支持(0) 反对(0) 张小三、 | 园豆:238 (菜鸟二级) | 2014-04-16 18:20
0

VS2010web项目只支持32位,那么你需要安装32位的Oracle客户端。

如果使用64位,需要vs2013勾选:对网站和项目使用IIS Express的64位版。在“工具--选项--项目和解决方案--Web项目”中。

Form应用可以以x64编译的,所以没问题

李永京 | 园豆:3114 (老鸟四级) | 2014-04-17 14:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册