这种情况有3种可能的原因(http://www.cnblogs.com/tongzhenhua/archive/2004/06/18/16714.html)

1.装Oracle 的机器是不是NTFS的?如果是的话,将\Ora81下的BIN的权限,全部放开,给所有用户。
(不然在B/S结构下会因为没有权限访问目录而报这个错误)

2.如果数据库服务器是Oracle816的。在服务器的那台机器上找Ora81\network\ADMIN下的sqlnet.ora文件,把里面的
SQLNET.AUTHENTICATION_SERVICES= (NTS)改成
SQLNET.AUTHENTICATION_SERVICES= (NONE)
(这种会造成某些机器上报驱动初始化失败的错误,在用OracleClient下出现过一次)

3.如果以上都没有解决问题。可以考虑是不是注册表里的注册真的丢失了。(可能性比较小,windows还是比较安全的)
regsvr32 ..\ORACLE_HOME\bin\OraOLEDB.dll
再不行可以重装一下客户端试试。

解决方法如下:(http://ms.mblogger.cn/web1999/posts/18148.aspx)
到ORACLE_HOME目录,如c:\Oracle\Ora92
点击鼠标右键->属性->安全,
对ASP.NET 帐户赋予允许读、执行权限,并在“高级”中保证该目录的子目录、文件都继承这些属性,确定。

重新注册oraoledb.dll:regsvr32 $\oracle\ora92\bin\oraoledb.dll

今天非常的高兴,发布一个网站居然能够出现这么多的错误,呵呵.

6:oracle 10g+vs2005+oracleClient.dll出现的问题

出错情况介绍:

个人的机器上装的是:oracle9i,服务器用的是oracle10g,用的都是一个oracleCclient.dll,在自己机器上运行的非常的好,能够得到数据,发布程序到服务器上,就不能够得到结果,同时,同一个数据库操作类,在winform上执行同样的查询能够得到结果,在webform上却不能够得到结果.

首先,出现的错误是:Could not create an environment: OCIEnvCreate returned -1

解决方案一:
              主要是将oracle主目录oracle\的读写权限赋予asp.net或者是IUSER_..和IWAM_..,重启计算机。

解决二:

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

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

解决三:
文件夹权限可以不用管。

设置ORACLE_HOME变量的方法如下

控制面板>>系统>>高级>>环境变量>>系统变量>>新建系统变量

变量名写ORACLE_HOME
变量值添实际的ORACLE_HOME路径,在注册表中有

个人按照上面的做了,出现另外的一个错误

System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本

这个问题忘记是怎么搞定的了,也许还是改权限吧,反正,服务器从启后,这个问题就没在出现,呵呵.

 

7 oracle 中操作blob + c#

OleDbCommand cmd1 = new OleDbCommand(" INSERT INTO BLOB (PHOTO) VALUES ( ? )",cn);
     cmd1.Parameters.Add("PHOTO",OleDbType.Binary);
     cmd1.Parameters["PHOTO"].Value = MyData;

cmd.CommandText = " insert into xlutest ( hhhh ) values (:hhhh) ";

   cmd.Parameters.Add("hhhh",System.Data.OleDb.OleDbType.Binary,expbyte.Length);
   cmd.Parameters [0].Value = expbyte;

 

 8 无法在“”已存在的情况下创建/影像复制该文件

解决方法:重新编译整个项目 或者重启电脑,呵呵

9 RegisterStartupScript 已过时

改为Page.ClientScript.RegisterStartupScript

10 由于目标机器积极拒绝,无法连接

vs2005里面,添加web引用的时候,默认的ulr会带上端口号,如:localhost:2473,因此,在添加完引用后, 用localhost替换掉所有的localhost:2473,在编译就行了

11 没有 aspnet 用户 

安装一.net控件的时候,显示没有aspnet用户。实现方法:

aspnet_regiis -i

 12 怎样得到当前日前的月份(月份为英文月的全称,比如July)

DateTime.Now.ToString("MMMM",new System.Globalization.CultureInfo("en-us"))

DateTime.Now.ToString("MMMM",DateTimeFormatInfo.InvariantInfo )