一、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的,所以這個錯誤找了好長時間。
