最近在搞一個Server升級的小案子

有個內部使用的系統,原本是一台爛爛的小PC(Windows 2000 Server)加 ASP
因為集團政策規定 Server OS 的標準是 windows2003
於是老闆在列出需升級的系統時,不知為何就把這台分給我....

但是這個系統目前屬於孤兒狀態,IT沒人維護,也沒有廠商,更沒有文件
老實說我連系統怎麼運作的都不曉得
但是這系統小歸小,但是如果有問題,連總經理都可能會發現......
(其實就是我們內部的圖書館系統啦...敝公司借書的風氣還蠻盛的)
說簡單嘛....連系統如何運作的都不曉得,各table也都沒有文件可查,也不敢妄下斷言

於是就先答應老闆要實測看看,才能評估是否可以升級

經過一的多月的奮戰....
目前大多搞定...
趁著印象還深刻把一些很詭異的部分記下來

1.無法使用ASP程式

Server裝好,網頁程式移過去,在IIS建好站台,結果連首頁都跑不出來
出現找不到檔案或目錄的HTTP 404 錯誤



但其實已經確認過,該檔案確實是存在的。


此時要去IIS管理員中,選「網頁服務延伸」,把「Active Server Pages」 設定成「允許」,
IIS 6 才能跑 asp 的程式喔。


2.不允許的上層路徑


原本在 IIS5  中跑得好好的程式,移到 IIS6後,就出現
Active Server Pages 錯誤 'ASP 0131' 不允許的上層路徑
原因是因為程式中有用到 ../ 來指向上層路徑的語法
IIS 6  預設是不支援的,需要自行開啟。

在IIS管理員→網站→選取該網站→按右鍵選「內容」→點選「主目錄」頁籤
→點選應用程式設定集的「設定」按鈕→點選「選項」頁籤
→勾選「啟用上層路徑」
這樣就OK啦。

3.無法連接 Oracle 資料庫

在資料庫的連線部分,這個系統大部分都是連接 SQL Server ,沒啥太大問題
但其中有連到 Oracle 的部分,就讓我花了很多時間....

不管是用 Server.CreateObject("Adodb.connection")
或者是 CreateObject("OracleInProcServer.XOraSession") 的寫法
在物件宣告的那一行就會掛掉,然後出現類似...無權限的錯誤訊息

上網找了很久,試了很多種方法,找不到正確的解答

最後我將Oracle 安裝資料夾(預設為 C:\oracle\ ),在「安全性」設定中,
針對使用者: [IUSER_機器名稱] 及 [IWAN_機器名稱],
給予「完全控制」的存取權限。

此時會發現原本不管怎麼改,就是無法連接Oracle 資料庫的ASP程式,已經可以正常連線了....

但是看其他同樣是從Windows 2000 升級到 Windows 2003 的機器,同樣是ASP的程式
對 C:\oracle 資料夾並沒有做什麼特殊的安全性設定啊....

基於實驗精神,
我直接刪掉 C:\oracle 資料夾「安全性設定」裡面新增的使用者 [IUSER_機器名稱] 及 [IWAN_機器名稱],
也就是還原成原本未設定的樣子...

然後對該網頁重新按一次 Ctrl- F5....

見鬼了!!居然可以了??
那我之前弄了兩三天,怎樣都不能連線,是怎樣??

因為同樣的情況,也發生在我們另外一台同樣2000升級到2003的機器上

網管先把oracle資料夾設定為 everyone full control ,再移除權限後,也是莫名其妙可以了....
於是我們得到的結論,可能是在 Server 安裝過程中,權限表有被打亂掉
導致 ASP 程式在執行時沒權限....
(但是另外那台機器,是因為網管並未format 掉重新安裝,我這台是新安裝的啊...)
最後的方法是重新format掉再安裝,就萬事OK了....

或許也只能說,怪事年年有,七月特別多吧。

 

創作者介紹

花言小語

Frances 發表在 痞客邦 PIXNET 留言(0) 人氣()