LINUX DOTNET      Linux DotNET 中文社区

Linux .NET编程与应用技术之专业网站:www.linuxdot.net !     返回首页    
   
[楼主] jexus 6.2.x c# oracle Object reference

第一次访问页面的时候,报出的异常信息如下:System.DllNotFoundException: libclntsh.so
at (wrapper managed-to-native) System.Data.OracleClient.Oci.OciCalls/OciNativeCalls:OCIEnvCreate (intptr&,System.Data.OracleClient.Oci.OciEnvironmentMode,intptr,intptr,intptr,intptr,int,intptr)
at System.Data.OracleClient.Oci.OciCalls.OCIEnvCreate (System.IntPtr& envhpp, OciEnvironmentMode mode, IntPtr ctxp, IntPtr malocfp, IntPtr ralocfp, IntPtr mfreep, Int32 xtramem_sz, IntPtr usrmempp) [0x00000] in :0
at System.Data.OracleClient.Oci.OciEnvironmentHandle..ctor (OciEnvironmentMode mode) [0x00000] in :0
at System.Data.OracleClient.Oci.OciGlue.CreateConnection (OracleConnectionInfo conInfo) [0x00000] in :0
at System.Data.OracleClient.OracleConnectionPoolManager.CreateConnection (OracleConnectionInfo info) [0x00000] in :0
at System.Data.OracleClient.OracleConnectionPool.CreateConnection () [0x00000] in :0
at System.Data.OracleClient.OracleConnectionPool.GetConnection () [0x00000] in :0
at System.Data.OracleClient.OracleConnection.Open () [0x00000] in :0
at System.Data.Common.DbDataAdapter.Fill (System.Data.DataTable dataTable, IDbCommand command, CommandBehavior behavior) [0x00000] in :0
at System.Data.Common.DbDataAdapter.Fill (System.Data.DataTable dataTable) [0x00000] in :0
at (wrapper remoting-invoke-with-check) System.Data.Common.DbDataAdapter:Fill (System.Data.DataTable)


再次刷新同样的页面,异常信息居然变成了:
System.NullReferenceException: Object reference not set to an instance of an object
at System.Data.OracleClient.OracleConnectionPool.GetConnection () [0x00000] in :0
at System.Data.OracleClient.OracleConnection.Open () [0x00000] in :0
at System.Data.Common.DbDataAdapter.Fill (System.Data.DataTable dataTable, IDbCommand command, CommandBehavior behavior) [0x00000] in :0
at System.Data.Common.DbDataAdapter.Fill (System.Data.DataTable dataTable) [0x00000] in :0
at (wrapper remoting-invoke-with-check) System.Data.Common.DbDataAdapter:Fill (System.Data.DataTable) at Citms.Data.DataAccess.ExecuteProcedure (System.Data.Common.DbConnection connection, System.String procedureName, Parameter[] paramers, System.Collections.Generic.Dictionary`2& outParamers) [0x00000] in :0

作者:weq weq   发布时间:20年07月24日   可选操作:删除 回复

[1楼] 回复:jexus 6.2.x c# oracle Object reference

因为没有找到你系统中有 libclntsh.so 这个oracle库。是你没有设置好有关oracle环境变量造成的。

作者:yunei   发布时间:20年07月24日   可选操作:删除 回复

[2楼] 回复:jexus 6.2.x c# oracle Object reference

export ORACLE_BASE=/usr/lib/oracle/12.2
export ORACLE_HOME=$ORACLE_BASE/client64
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=$ORACLE_HOME:$PATH

已经在/etc/profile文件中增加上述配置,且sqlplus命令可用

作者:weq weq   发布时间:20年07月28日   可选操作:删除 回复

[3楼] 回复:jexus 6.2.x c# oracle Object reference

而且在位置/usr/lib/oracle/12.2/client64/lib/有个libclntsh.so软连接文件连接至libclntsh.so.12.1

作者:weq weq   发布时间:20年07月28日   可选操作:删除 回复

[4楼] 回复:jexus 6.2.x c# oracle Object reference

少做一步配置,应该要在目录【/etc/ld.so.conf.d/】下建立文件oracle-client.conf,并写入oracle lib位置,如【/usr/lib/oracle/12.2/client64/lib】

作者:weq weq   发布时间:20年07月28日   可选操作:删除 回复

 
   
   

留言回复:
标题: * 标题必填
作者:   * 请填上你的名字  
操作键:   * 填入几个字母表示是您写的,便于进一步操作
发言内容:
 
发贴者须知:
1、您无需注册即可发贴,但是,贴子内容必须在法律法规和社会公德所允许的范围内;
2、本站专注IT技术,谢绝包括政治、社会、情感等任何与IT技术无关的贴子在本站发表;
3、本站保留对任何贴子进行删除、禁用、更改、举报、追究等所有权利;
 
今天是: 星期天  星期一  星期三  星期二  星期四  星期五  星期六