標籤:伺服器 asp iis7.0 odbc
真的是太不容易了,以前的時候在window server 2003上面搭建了一套asp+oracle的介面系統,就費了好大的勁兒,其實那會迷迷瞪瞪的也不知道怎麼的就弄好了,也懶得管了。OK,從昨天到今天打算把介面從測試環境部署到公網環境上去的時候就出現了各種各樣的問題,這次一定得記錄一下。
先來說一下這套介面系統的整體方案:
之所用選用asp是因為屬於輕量級的介面系統,只需要修改好了以後複製粘貼上去介面就立即生效,而不需要像java系的介面程式要用tomcat打包、上傳、部署這樣的。那這個系統就是現在window server上啟用IIS,然後建立web網頁服務,然後通過ODBC串連上資料庫,在web頁面中訪問和串連oracle資料庫。
下面就開始一步一步介紹如何?這個過程。
1. IIS服務的啟動。
參考連結:http://www.ip-tcp.com/?tag=windows-server-2008-iis-%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE
因為我們是部署ASP,所以記得把這兩個相關的勾上,感覺不勾選asp.net也沒啥事,但是保險起見還是都勾上吧,也不多啥的
安裝完成之後,就可以在管理工具中找到iis管理器了。
這裡我在實際中因為當時IIS已經被啟動了,但是估計是沒有正確得被啟動,我找了好久都沒有找到IIS管理器,後來一怒之下重新把IIS服務關掉然後重新啟動,勾上ASP,就ok了。很多時候,如果你覺得自己的操作有問題,或者別人已經給你弄好了但是不知道為什麼有問題,就刪除了重新來弄吧。
然後我們在網站上面右鍵,選擇添加網站
彈出來下面的介面:
這裡面網站的名稱隨便寫就好了;實體路徑選擇你自己建立的一個檔案夾;類型和IP地址都不要變,保持HTTP和全部未分配,連接埠可以隨便填一個,因為我們這個伺服器上已經有網站用了80連接埠,所以我在實際中用了8080;主機名稱可以不寫的,然後點擊確定
這裡要注意一下,IIS預設的那個網頁會佔用掉80連接埠,剛同事來找我說他們的網頁開啟成iis7的頁面了,我一看果然是把連接埠給佔用掉了。
這裡我們的網站其實已經建立好了,可以在你自己的網站的目錄下面寫一個簡單的測試頁面,這是我剛弄好的網站目錄,一個簡單的index.html頁面
.
在原生瀏覽器裡面輸入 127.0.0.1:8080就可以看到頁面上顯示了123456,說明我們的頁面已經搭建好了。如果你的伺服器可以公網訪問,直接輸入你的公網IP地址加上連接埠號碼,也可以看到剛建立好的頁面。
到這裡其實網站已經搭建起來了,但是還有兩步額外的操作在這裡一併做了吧。
首先就是能顯示頁面的錯誤碼,如果不開啟的話,asp出現什麼錯誤提示我們是看不到的
開啟我們上一步建立好的網站
雙擊ASP
點開調試屬性,然後這裡面 “將錯誤發送到瀏覽器”選項預設的是false,我們將其改成True
接下來的步驟是更改應用程式集區啟用32位應用程式,為什麼要這樣做我們在後面再告訴大家。
2. 安裝和設定資料庫
我這裡安裝的是oracle10g的用戶端,基本上都是預設的安裝下來,好像只有
安裝類型,選擇管理員和Oracle Net Configuration Assistant:勾選“執行典型配置”安裝完成資料庫後
在開始菜單中 選擇開啟 Net Configuration Assistant
選擇 本地Net服務名配置
選擇添加
這裡的服務名自己填就好了
選擇預設的TCP就ok
這裡需要注意一點:向你們的資料庫管理員要一下資料庫的內網IP地址以及連接埠號碼;我不太確定這裡填寫外網地址是否可以,因為我們的系統做了比較複雜的安全認證,我這裡寫外網地址是不ok的;然後連接埠號碼也要問清楚。
這裡也可以選擇直接測試,不過應該是會失敗的,因為使用的使用者名稱和密碼不對,
點擊下面的更改登入,換成你的使用者名稱和密碼,再重新測試,應該就能串連成功
下一步
這裡Net CA就配置好了。
3. 配置ODBC
這裡如果你直接用系統中內建的ODBC,會出現這樣的情況:
你會發現在系統DSN添加中只有一個SQL Server,這就是我們之前一個地方提到的,32位和64位的原因了,不過網上有解決辦法:
找到C:/Windows/SysWOW64
雙擊開啟odbcad32.exe,
在選擇系統DSN,選擇添加,就可以找到oracle10g這個我們需要用到的驅動了
點擊完成
在彈出的對話方塊中,Data Source Name我們在第2步中建立的名稱,然後TNS service Name從下拉框中選擇上一步建立好的那個,圖中是我建立的名稱。點擊ok,這一步就算完成了。
4. 調試你的ASP網頁
一個典型的測試你的ASP能不能成功連到資料庫的頁面如下:
server填寫成前兩個步驟裡面我們起的那個名字,然後uid是你的oracle的使用者名稱,pwd是密碼
還記得我們第1步裡面有改過web的程式池支援32位嗎?如果沒有那個步驟,你的頁面應該會先有1行 1,111111,就是我們輸出的內容,然後會提示一個80004005的錯誤
錯誤的原因是 : 未探索資料源名稱並且未指定預設驅動程式
採用這個網頁中的方法http://blog.snsgou.com/post-619.html,也就是我們在前面處理過的,把程式池改成啟用32位的程式 就ok了。
如果你以為到這裡就ok了,那你就又錯了,改完了之後,你的asp頁面會彈出另外一個錯誤:
依舊是80004005錯誤,但是錯誤的原因是SQLAllocHandle on SQL_HANDLE_ENV失敗,繼續google如何解決,找到了這個頁面:
http://bbs.bccn.net/thread-192876-1-1.html
我也想起來了之前在windows server 2003上面也出現過同樣的問題,當時也是搞了好多然後重啟下就ok了,就抱著試一試的方法,同樣的步驟操作了一遍,然後重啟,一定要重啟,就ok了
到這裡,我們的整個ASP頁面連結資料庫全部都成功了!!
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
Windows server2008 搭建ASP介面訪問串連oracle資料庫全過程記錄