一、OCIEnvCreate failed
昨天在把asp.net项目部署到iis后,出现了这样的异常信息OCIEnvCreate failed with return code -1 but error message text was not available。
在网上找了很多资料,大多数的解决方案是关于asp.net或net work service用户的权限还有什么Authenticated Users的权限,最后都添加了这些用户的权限,可还是不行,又说要重启计算机(到问题解决并没有重启过电脑)。最后查找原因 原来装oracleclient软件的E盘出现了不能访问的故障(分区为E的磁盘损坏了),自然iis也不能访问了,最后在其它磁盘(我的是D盘)中还有一个oracleclient(电脑中安装了两个),便在环境变量中path指向oracleclient的路径做了修改,指向了好的磁盘下安装的oracleclient(它默认是指向E盘的那个路径 也就是分区坏了的那个磁盘),修改完最后重要的一项就是重启iis,iis是把环境变量中的配置加载到自己内存中的,如果不重启 默认使用的还是最初的path。至此问题圆满解决。
二、oracle的to_date函数
今天遇到的另一个问题是,在使用oracle的函数to_date时,报错 具体错误信息忘了,就是给的值不符合要求 valid month。在程序中写sql语句时,传的参数必须是定义好的格式,不能直接传DateTime类型的变量,应该把变量格式化一下 例如日期类型的变量date,我们可以这样拼如sql语句中,date.ToString("yyyy-MM-dd HH:mm:ss"),这样oracle的函数to_date才能识别。这个错误应该是10g以下的版本才会有,我用的11g的没有出现,但服务器上是10g的,所以这个错误找了好长时间。