我能操做的終端電腦是一臺linux系統能夠上互聯網 ,服務器在部署在獨立的私網上,不方便上互聯網。服務器是2008R2.安裝vs不是很方便。其所linux下做開發不是不能夠,java php mono.net python 都能作。可是我還得在服務器上部署一套運行環境。由於操做系統不一樣,還不知道有沒有什麼坑。就想到了不須要部署的ASP。2008R2的IIS自帶此功能。php
但所沒想到仍是有坑的。。先說說服務器的環境,2008R2 安裝了64位 oracle11G。安裝了9i精簡客戶端。java
一)鏈接字符串問題python
原來在網上搜的ado的鏈接字符串,格式以下。但所一直報錯,提示沒法識別服務名。linux
connstr="Provider=OraOLEDB.Oracle;Data Source=orcl;User Id=trffpn_app;Password=*****; "
而後就嘗試另外的鏈接字符串經過ODBC鏈接,格式以下:sql
connstr="DSN=trffpn;UID=trffpn_app;PWD=******"
二)64位系統下32位ODBC管理工具。服務器
須要在odbc下面創建鏈接。在管理工具裏面用ODBC管理創建了鏈接池,發現害死報錯,提示找不到數據源。後來發現64的系統ODBC是區分32位和64位的。32位ODBC管理工具路徑以下:oracle
C:\Windows\SysWOW64\odbcad32.exe
三)9i精簡客戶端odbc驅動問題app
找到odbc32就好辦了,創建鏈接就能夠了,發現仍是報錯,提示用戶名密碼不對。怎麼嘗試怎麼不對。想來64位的ODBC沒問題,估計就是32位的ODBC驅動的問題了。ide
卸載驅動,從新安裝12.2綠色版驅動。工具
綠色版客戶端是不包含ODBC驅動的,下載獨立ODBC驅動包,把兩個放在一個目錄下面。
而後執行一下ODBC驅動安裝文件odbc_install.exe,建議在命令行裏執行方便查看輸出結果。
最後配置環境變量便可,主要方便32位的PLSQL鏈接。其中tns_admin和ORACLE_HOME不設置也行。在oci.dll文件目錄下新建NETWORK/ADMIN目錄,把tnsnames.ora放在這裏便可。把綠色版客戶端目錄直接複製在plsql選項卡里也就能夠不須要配在ORACLE_HOME了。
NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK TNS_ADMIN = D:/PLSQL/instantclinet_11_2
ORACLE_HOME= D:/PLSQL/instantclinet_11_2
好了,這這時候終於在32位的驅動裏創建了oracle鏈接
四)12.2驅動 plsql 登錄時須要VC++2003運行環境
折騰好了,要登錄plsql 個人版本是7.發現報錯。msvc120.dll的錯誤。百度搜了下缺乏VC2003運行環境,安裝後解決。另外PLSQL11已經支持64位客戶端了。
五)獲取後的數據中文亂碼
在aspstudio裏沒有問題,但所在iis裏就是亂碼查看十六進制後中文都是3F。這個搗鼓了我很久,修改NLS_LANG,在ASP裏現實聲明CODE。都沒有用。後來想起來配在了oracle驅動後尚未重起服務器,重起解決
response.CodePage=65001 Response.Charset="UTF-8"