异常详细信息: System.DllNotFoundException: 无法加载 DLL (oci.dll)的解决办法

无法加载oci.dll

我在一台winxp的机器上安装了oracle 9.2.0.1 企业服务器,然后又使用vs.net c#2003开发一数据库程序,我用的是oracledataadapter.fill(),但系统报错,而我在另一台WIN2003上安装ORACLE的客户端做同样的试验就没问题.出错症状如下:

“/DuBan”应用程序中的服务器错误。
--------------------------------------------------------------------------------

无法加载 DLL (oci.dll)。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.DllNotFoundException: 无法加载 DLL (oci.dll)。

源错误: 


行 28:                         //oracleDataAdapter1.Fill(dataSet21);
行 29:                         //DataGrid1.DataBind();
行 30:                         oracleDataAdapter1.Fill(dataSet11);
行 31:                         DataGrid1.DataBind();
行 32:                 }


源文件: c:/inetpub/wwwroot/duban/index1.aspx.cs    行: 30 

堆栈跟踪: 


[DllNotFoundException: 无法加载 DLL (oci.dll)。]
   System.Data.OracleClient.DBObjectPool.GetObject(Object owningObject, Boolean& isInTransaction)
   System.Data.OracleClient.OracleConnectionPoolManager.GetPooledConnection(String encryptedConnectionString, OracleConnectionString options, OracleConnection owningObject, Boolean& isInTransaction)
   System.Data.OracleClient.OracleConnection.OpenInternal(OracleConnectionString parsedConnectionString, Object transact)
   System.Data.OracleClient.OracleConnection.Open()
   System.Data.Common.DbDataAdapter.QuietOpen(IDbConnection connection, ConnectionState& originalState)
   System.Data.Common.DbDataAdapter.FillFromCommand(Object data, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
   DuBan.WebForm1.Page_Load(Object sender, EventArgs e) in c:/inetpub/wwwroot/duban/index1.aspx.cs:30
   System.Web.UI.Control.OnLoad(EventArgs e)
   System.Web.UI.Control.LoadRecursive()
   System.Web.UI.Page.ProcessRequestMain()




--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:1.1.4322.573; ASP.NET 版本:1.1.4322.573

__________________
习惯是堕落的第一步
只看该作者    
tomdoctor 
斑竹



精华贴数 2 
个人空间 0
技术积分 3095 (674)
社区积分 43 (7297)
注册日期 2004-1-29
论坛徽章:11
 

 

#2
使用道具  
发表于 2004-4-7 13:24 
重装一下.net framework试试

__________________
招聘火热进行中----- 如果你对ERP-FIN或者HRMS有一点了解 并且想要换一个工作 请给我简历 面试地点可以安排在南京或者深圳 具体信息参考
http://www.itpub.net/viewthread.php?tid=484392
只看该作者    
djzxljb 
中级会员



精华贴数 0
个人空间 0
技术积分 422 (6022)
社区积分 1 (49253)
注册日期 2004-3-22
论坛徽章:0
           
           

 

#3
使用道具  
发表于 2004-4-7 13:34 
我找到解决办法了

我找了许久,在国外的网站上找到了解决办法,我所遇到的这个问题,很久以前国外国内有许多人都碰到过,这个问题的症结在于权限的设置,这是我摘抄解决方案.主要是将oracle/oracle92的读写权限赋予asp.net或者是IUSER_..和IWAM_..
原文:
When you install your Oracle Client (whatever it might be) make sure to install the Administrator option. In 9.2.0.1.0, it was about 500 MB. This installs all the correct files you need, including oci.dll. This should be similar for most oracle client versions. 

After it is done, give iuser/iwam these permissions on Oracle (for me, it was D:/Oracle/, no need to go any further): 
* Read&Execute 
* List Folder Contents 
* Read 

Restart computer. 

Your problem should be gone. I just wanted everybody else to know how it can be solved. *Woohoooo!!!*

__________________
习惯是堕落的第一步
只看该作者    
po22757033 
初级会员



精华贴数 0
个人空间 0
技术积分 12 (98817)
社区积分 0 (183724)
注册日期 2004-9-19
论坛徽章:0
           
           

 

#4
使用道具  
发表于 2004-9-20 09:00 
po22757033 请 公布 解决代码好嘛!

我给您去了EMAIL,如不是太麻烦的话请公布 解决代码好嘛!我也被此问题困扰多时了!工作无法进展下去!  04-09-20日

__________________
wangxin
只看该作者    
po22757033 
初级会员



精华贴数 0
个人空间 0
技术积分 12 (98817)
社区积分 0 (183724)
注册日期 2004-9-19
论坛徽章:0
           
           

 

#5
使用道具  
发表于 2004-9-20 10:00 
问题解决!大家分享!

打开在IIS中的WEB属性--主目录--执行权限【改为-脚本和可执行文件】;

-应用程序池【改为-MSSharePointAppPool】,刷新OK;

__________________
wangxin
只看该作者    
小草蚂蚱 
一般会员


精华贴数 0
个人空间 0
技术积分 237 (10366)
社区积分 6 (19272)
注册日期 2002-7-15
论坛徽章:0
           
           

 

#6
使用道具  
发表于 2004-12-13 11:03 
错误提示:无法加载 DLL (oci.dll)。  
1.安装oracle 9i后解决
2.另外一种可能是,ORACLE_HOME 路径所在的分区格式是NTFS格式;解决方法到Oracle/ora92打开Ora92的-〉属性-〉安全,选Authenticated_Users,将Read and Execute的勾去掉,然后又勾上,确定重新启动机器即可。 
谁知道这个在哪改?

__________________
我很笨,可我很用功,并且努力ing……看下注册时间,自己竟然算个老人,又转回到原点重新开始。
只看该作者    
mingwuyi 
初级会员



精华贴数 0
个人空间 0
技术积分 2 (237270)
社区积分 0 (224572)
注册日期 2004-11-10
论坛徽章:0
           
           

 

#7
使用道具  
发表于 2005-1-19 13:23 
好帖子

我用 djzxljb 
的方法搞定了。我的系统是很干净的,刚装的系统,是2003 server.。装了Oracle 9i数据库。今天用.Net没有搞定,报上面的错误,现在搞定了,谢谢了。

只看该作者    
 
 

你可能感兴趣的:(总结)