环境:linux+mono2.4+.net2.0+oracle11g
出现如下错误:
System.DllNotFoundException: libclntsh.so导致.net程序不能写入到oracle;
其中oralce通过客户端连接到另外一台服务器,如果在shell中远程登录oracle就都正常;
远程的oracle服务器没问题,因为还有其他客户端在使用,均正常;
这台机器重装以后就出现这个问题,怀疑是某些软件没装好,比如mono、oracle客户端,或者哪些地方没设置对,请大家多多指点!

解决方案 »

  1.   

    vim /etc/ld.so.conf
    把你安装的oracle的库路径追加上 比如
    /oracle/product/10.2.0/db_1/lib/然后执行
    ldconfig
      

  2.   

    /usr/lib/libclntsh.so
    这里有,我把它拷贝到了另外几个地方,还是不行
    /usr/bin/libclntsh.so
    /usr/local/bin/libclntsh.so
    /opt/oracle/product/11gR1/db/lib/libclntsh.so
      

  3.   

    /etc/ld.so.conf中已经有
    /opt/oracle/product/11gR1/db/lib
      

  4.   

    我在外网上看到了一个解决方法
    在apache里的启动脚本/etc/init.d/httpd里追加
    export LD_LIBRARY_PATH=<oracle client path>:$LD_LIBRARY_PATH
    export TNS_ADMIN=<oracle client path>同样中文网站里也提到了http://www.cnblogs.com/xingzhixp/archive/2008/05/29/monorhel44.html
    在Apache的配置文件(应该是/etc/init.d/httpd)中加入:
    export LD_LIBRARY_PATH=/home/oracleclient:$LD_LIBRARY_PATH
    export TNS_ADMIN=/home/oracleclient 
      

  5.   

    http://www.cnblogs.com/xingzhixp/archive/2008/05/29/monorhel44.html
    这篇文章看过好几遍,今天我又完全按照里面说的方法做了一遍,还是一样的错误
      

  6.   

    已经搞定,一个同事在64位的机器上安装了32位的oracle客户端,汗