ASP.NET连接Oracle9i数据库无法加载oci.dll?
提示如下错误信息:请教高手是何原因?System.DllNotFoundException: 无法加载 DLL (oci.dll)。源错误: 
行 26:             string connstring="Data Source=maj.test;user=test;password=password;";
行 27:             OracleConnection conn=new OracleConnection(connstring);
行 28:             conn.Open(); 
行 29:             //实例化OracleCommand对象
行 30:             //OracleCommand cmd=conn.CreateCommand();
 源文件: e:\home\hgcweb\oracle_conn.aspx.cs    行: 28 堆栈跟踪: 
[DllNotFoundException: 无法加载 DLL (oci.dll)。]
   System.Data.OracleClient.DBObjectPool.GetObject(Object owningObject, Boolean& isInTransaction) +207
   System.Data.OracleClient.OracleConnectionPoolManager.GetPooledConnection(String encryptedConnectionString, OracleConnectionString options, OracleConnection owningObject, Boolean& isInTransaction) +165
   System.Data.OracleClient.OracleConnection.OpenInternal(OracleConnectionString parsedConnectionString, Object transact) +600
   System.Data.OracleClient.OracleConnection.Open() +32
   hgcweb.Oracle_Conn.Page_Load(Object sender, EventArgs e) in e:\home\hgcweb\oracle_conn.aspx.cs:28
   System.Web.UI.Control.OnLoad(EventArgs e) +67
   System.Web.UI.Control.LoadRecursive() +35
   System.Web.UI.Page.ProcessRequestMain() +731

解决方案 »

  1.   

    按以下步骤试一下:  1、检查你的Oracle9i 的bin目录是否包含 oci.dll 如果没有也许是安装不正确了
      2、如果存在 将ASP.NET访问账户添加 加到ora92\bin的目录安全访问中 ,也可以直接添加everyone,不过要考虑安全因素
      3、重新注册一下IIS  aspnet_regiis -u
                          aspnet_regiis -i
      

  2.   


    1.解决方法 到Oracle\ora92 打开Ora92的-》属性-》安全,选Authenticated Users 看下面的属性 将Read and Execute 的勾去掉,然后又勾上,确定重新启动机器2.你到  C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG
    找到machine.config这个文件 然后再里面搜索userName="machine",把machine改为system,重新启动机器,就可以解决你的问题了   
    3.copy了3个dll文件到webservice中
    4.E:\oracle\ora92\bin  也设置成aspnet可以访问的。(同第一步,只是设置成完全的)