操作系統:Windows2000,IIS5
出現症狀:使用ASPJPEG時執行Server.CreateObject("Persits.Jpeg")
ASP錯誤提示:
Server 對象 錯誤 'ASP 0177 : 800401f3'
Server.CreateObject 失敗
無效的 ProgID。 若要獲取關於此消息的更多的信息,請訪問 Microsoft 聯機支持站點: http://www.microsoft.com/contentredirect.asp 。
問題分析:
提示Server.CreateObject 失敗 ,一定是組件問題,應該從組件上著手
解決過程:
重新啟動IIS,未成功;
重新安裝ASPJPEG,未成功;
在ASPJPEG.DLL目錄執行Regsvr32 aspjpeg.dll,提示注冊成功,運行依然失敗;
換ASPJPEG另外一個版本安裝,運行失敗;
嘗試在組件服務中注冊此組件,運行失敗;
考慮是否是其他問題,想到了組件權限,給aspjpeg.dll加上Everyone完全控制,重啟IIS,運行繼續失敗;
將IIS的匿名用戶IUSR_****更改成administrators組的用戶,輸入用戶密碼,重啟IIS,執行成功。
本次問題解決了一半,ASPJPEG已經可以使用,但這樣解決不能徹底解決問題,還會造成安全問題。本地測試可以使用此方法,不能在服務器等安全性需要較高的地方使用,繼續尋找解決辦法
該方法的缺點:賦予了IIS的匿名用戶是管理員組成員後,IIS的訪問用戶就是以管理員身份登陸,在服務器環境下,客戶端用戶就可以很容易的控制服務器甚至破壞服務器。
新的解決辦法:
點擊“開始”-“運行”,輸入“regedt32”,點擊確定運行該注冊表編輯器;
依次點擊“HKEY_CLASSES_ROOT”、“Persits.Jpeg”,點擊編輯器窗口工具欄上“安全”-“權限”,添加“IUSR_XXXX”用戶,選擇“讀取”權限,點擊確定;
依次點擊“HKEY_CLASSES_ROOT”、“Persits.Jpeg.1”,點擊編輯器窗口工具欄上“安全”-“權限”,添加“IUSR_XXXX”用戶,選擇“讀取”權限,點擊確定;
點擊關閉按鈕推出注冊表編輯器;
重啟IIS;
此時訪問asp探針,ASPJPEG項已經顯示支持,問題圓滿解決。