訪問asp頁面出現出現“請求的資源在使用中”的解決辦法_win伺服器
來源:互聯網
上載者:User
首先解決方案:
在Dos命令列狀態下分別輸入下列命令並按斷行符號(Enter)鍵:
regsvr32 jscript.dll (命令功能:修複Java動態連結程式庫)
regsvr32 vbscript.dll (命令功能:修複VB動態連結程式庫)
如果不行再試下面的方法:
"內部伺服器錯誤" "請求的資源在使用中"解決辦法 [轉]
一、出現的問題
windows2003 IIS6運行ASP, http 500 - 內部伺服器錯誤
就是asp程式不能瀏覽 但htm靜態網頁不受影響
將IE改為不顯示友好錯誤如下時:出現“請求的資源在使用中”
二、第一次解決
搜尋網上相關內容,找到一篇解決方案文章,原因分析為:
主要是由於iwam帳號在active directory、iis metabase資料庫和com+應用程式三處的密碼
錯誤造成了HTTP 500內部錯誤。
相應的解決辦法為:
同步iwam帳號在active directory、iis metabase資料庫和com+應用程式三處的密碼。
相應操作用google搜尋可以找到
而我的機子並未有文章上所描述的“使用者名稱未知或密碼錯誤”之類的資訊日誌,
但死馬當活馬醫,密碼同步化後 ,還是不行。
三、第二次解決
後來無賴只好重裝系統。系統裝好時可以用,當發現裝了 瑞星(不管是正版還是D版)後就出現“請求
的資源在使用中”http 500 - 內部伺服器錯誤,心一激動,想可能是瑞星的問題
卸載瑞星後 ,ASP又好了 。心想不能不裝殺毒軟體吧
後來試裝mcafee 還是不行 ,到這裡估計是殺毒軟體惹的禍。
無意中上動網論壇 ,看見網友小豪的文章http://bbs.aspsky.net/dispbbs.as ... D=917043&page=2
的啟發,又試 Norton Symantec AntiVirus 中小型企業版 ,
成功
再也沒有出現 請求的資源在使用中http 500 - 內部伺服器錯誤 。
asp 終於又跑起來了。
到這時候就一直用Norton殺毒軟體,而且是 企業版,個人版的好象不行
四、最後的終結者
前天上網得知這個問題可能與指令碼出錯有關,
關閉殺毒軟體的所有的即時監控,指令碼監控。
在Dos命令列狀態下分別輸入下列命令並按斷行符號(Enter)鍵:
regsvr32 jscript.dll (命令功能:修複Java動態連結程式庫)
regsvr32 vbscript.dll (命令功能:修複VB動態連結程式庫)
不管是 瑞星 還是 mcafee 什麼殺毒軟體 ,只要這樣做就行
asp再也不出現http 500 - 內部伺服器錯誤 請求的資源在使用中。
希望對曾經遇到過同樣問題的朋友有點協助
錯誤原因:
1、伺服器上安裝的上單機版殺毒軟體,如瑞星2005。伺服器上使用單機版殺毒一般都不會穩定的。
2、由於iwam帳號在active directory、iis metabase資料庫和com+應用程式三處的密碼不同步
3、開啟了單機版殺毒的指令碼監控,造成指令碼出錯。
解決方案:
1、卸載單機版殺毒軟體,重啟後,換裝伺服器版殺毒軟體。如Norton Symantec AntiVirus 中小型企業版。
2、詳見下面的內容。比較長,要有點耐心看完哦。
4、運行regsvr32 jscript.dll和 regsvr32 vbscript.dll重新註冊JAVA指令碼和VB指令碼的動態連結程式庫
==========================================
一.錯誤表現
iis5的http 500內部伺服器錯誤是我們經常碰到的錯誤之一,它的主要錯誤表現就是asp程式不能瀏覽但htm靜態網頁不受影響。另外當錯誤發生時,系統事件日誌和安全事件記錄都會有相應的記錄。
具體如下:
(一)ie中的表現
當瀏覽以前能夠正常啟動並執行asp頁面時會出現如下的錯誤:
網頁無法顯示
您要訪問的網頁存在問題,因此無法顯示。
請嘗試下列操作:
開啟 http://127.0.0.1 首頁,尋找指向所需資訊的連結。
單擊重新整理按鈕,或者以後重試。
http 500 - 內部伺服器錯誤
internet 資訊服務
技術資訊(支援個人)
詳細資料:
microsoft 支援
或者是:
server application error
the server has encountered an error while loading an application during the processing of your request. please refer to the event log for more detail information. please contact the server administrator for assistance.
(二)安全日誌記錄(2條)
事件類型: 失敗審核
事件來源: security
事件種類: 登入/登出
事件 id: 529
日期: 2001-9-9
事件: 11:17:07
使用者: nt authority\system
電腦: myserver
描述:
登入失敗:
原因: 使用者名稱未知或密碼錯誤
使用者名稱: iwam_myserver
域: mydom
登入類型: 4
登入過程: advapi
身分識別驗證程式包: microsoft_authentication_package_v1_0
工作站名: myserver
事件類型: 失敗審核
事件來源: security
事件種類: 帳戶登入
事件 id: 681
日期: 2001-9-9
事件: 11:17:07
使用者: nt authority\system
電腦: myserver
描述:
登入到帳戶: iwam_myserver
登入的使用者: microsoft_authentication_package_v1_0
從工作站: myserver
未成功。錯誤碼是: 3221225578
(三)系統日誌中的記錄(2條)
事件類型: 錯誤
事件來源: dcom
事件種類: 無
事件 id: 10004
日期: 2001-9-9
事件: 11:20:26
使用者: n/a
電腦: myserver
描述:
dcom 遇到錯誤“無法更新密碼。提供給新密碼的值包含密碼中不允許的值。 ”並且無法登入到 .\iwam_myserver 上以運行伺服器:
3d14228d-fbe1-11d0-995d-00c04fd919c1}
事件類型: 警告
事件來源: w3svc
事件種類: 無
事件 id: 36
日期: 2001-9-9
事件: 11:20:26
使用者: n/a
電腦: myserver
描述:
伺服器未能轉入應用程式 ‘/lm/w3svc/4/root‘。錯誤是 ‘runas 的格式必須是<網域名稱>\<使用者名稱>或只是<使用者名稱>‘。
若要擷取關於此訊息的更多的資訊,請訪問 microsoft 聯機支援網站: http://www.microsoft.com/contentredirect.asp 。
二.原因分析
綜合分析上面的錯誤表現我們可以看出,主要是由於iwam帳號(在我的電腦即是iwam_myserver帳號)的密碼錯誤造成了http 500內部錯誤。
在詳細分析http500內部錯誤產生的原因之前,先對iwam帳號進行一下簡要的介紹:iwam帳號是安裝iis5時系統自動建立的一個內建帳號,主要用於啟動進程之外的應用程式的internet資訊服務。iwam帳號的名字會根據每台電腦netbios名字的不同而有所不同,通用的格式是iwam_machine,即由“iwam”首碼、連接線“_”加上電腦的netbios名字組成。我的電腦的netbios名字是myserver,因此我的電腦上iwam帳號的名字就是iwam_myserver,這一點與iis匿名帳號isur_machine的命名方式非常相似。
iwam帳號建立後被active directory、iis metabase資料庫和com+應用程式三方共同使用,帳號密碼被三方分別儲存,並由作業系統負責這三方儲存的iwam密碼的同步工作。按常理說,由作業系統負責的工作我們大可放心,不必擔心出錯,但不知是bug還是其它什麼原因,系統的對iwam帳號的密碼同步化工作有時會失敗,使三方iwam帳號所用密碼不統一。當iis或com+應用程式使用錯誤iwam的密碼登入系統,啟動iis out-of-process pooled applications時,系統會因密碼錯誤而拒絕這一請求,導致iis out-of-process pooled applications啟動失敗,也就是我們在id10004錯誤事件中看到的“不能運行伺服器 3d14228d-fbe1-11d0-995d-00c04fd919c1} ”(這裡 3d14228d-fbe1-11d0-995d-00c04fd919c1} 是iis out-of-process pooled applications的key),不能轉入iis5應用程式,http 500內部錯誤就這樣產生了。
三.解決辦法
知道了導致http 500內部錯誤的原因,解決起來就比較簡單了,那就是人工同步iwam帳號在active directory、iis metabase資料庫和com+應用程式中的密碼。
具體操作分三步,均需要以管理員身份登入電腦以提供足夠的操作許可權(iwam帳號以iwam_myserver為例)。
(一)更改active directory中iwam_myserver帳號的密碼
因iwam帳號的密碼由系統控制,隨機產生,我們並不知道是什麼,為完成下面兩步的密碼同步化工作,我們必須將iwam帳號的密碼設定為一個我們知道的值。
1、選擇“開始”->“程式”->“管理工具”->"active directory使用者和電腦",啟動“active directory使用者和電腦”嵌入式管理單元。
2、單擊“user”,選中右面的“iwam_myserver”,右擊選擇“重設密碼(t)...”,在跳出的重設密碼對方框中給iwam_myserver設定新的密碼,這兒我們設定成“aboutnt2001”(沒有引號的),確定,等待密碼修改成功。
(二)同步iis metabase中iwam_myserver帳號的密碼
可能因為這項改動太敏感和重要,微軟並沒有為我們修改iis metabase中iwam_myserver帳號密碼提供一個顯式的使用者介面,只隨iis5提供了一個管理指令碼adsutil.vbs,這個指令碼位於c:\inetpub\adminscripts子目錄下(位置可能會因你安裝iis5時設定的不同而有所變動)。
adsutil.vbs指令碼功能強大,參數非常多且用法複雜,這裡只提供使用這個指令碼修改iwam_myserver帳號密碼的方法:
adsutil set w3svc/wamuserpass password
"password"參數就是要設定的iwam帳號的新的密碼。因此我們將iis metabase中iwam_myserver帳號的密碼修改為“aboutnt2001”的命令就是:
c:\inetpub\adminscripts>adsutil set w3svc/wamuserpass "aboutnt2001"
修改成功後,系統會有如下提示:
wamuserpass: (string) "aboutnt2001"
(三)同步com+應用程式所用的iwam_myserver的密碼
同步com+應用程式所用的iwam_myserver的密碼,我們有兩種方式可以選擇:一種是使用元件服務mmc嵌入式管理單元,另一種是使用iwam帳號同步指令碼synciwam.vbs。
1、使用元件服務mmc嵌入式管理單元
(1)啟動元件服務嵌入式管理單元:選擇“開始”->“運行”->“mmc”,啟動管理主控台,開啟“添加/刪除嵌入式管理單元”對話方塊,將“元件服務”嵌入式管理單元添加上。
(2)找到“元件服務”->“電腦”->“我的電腦”->“com+應用程式”->“out-of-process pooled applications”,右擊“out-of-process pooled applications”->“屬性”。
(3)切換到“out-of-process pooled applications”屬性對話方塊的“標誌”選項卡。“此應用程式在下列賬戶下運行”選擇中“此使用者”會被選中,使用者名稱是“iwam_myserver”。這些都是預設的,不必改動。在下面的“密碼”和“確認密碼”文字框內輸入正確的密碼“aboutnt2001”,確定退出。
(4)系統如果提示“應用程式被一個以上的外部產品建立。你確定要被這些產品支援嗎?”時確定即可。
(5)如果我們在iis中將其它一些web的“應用程式保護”設定為“高(獨立的)”,那麼這個web所使用的com+應用程式的iwam帳號密碼也需要同步。重複(1)-(4)步,同步其它相應out of process application的iwam帳號密碼。
2、使用iwam帳號同步指令碼synciwam.vbs
實際上微軟已經發現iwam帳號在密碼同步化方面存在問題,因此在iis5的管理指令碼中單獨為iwam帳號密碼同步化編寫了一個指令碼synciwam.vbs,這個指令碼位於c:\inetpub\adminscripts子目錄下(位置可能會因你安裝iis5時設定的不同而有所變動)。
synciwam.vbs指令碼用法比較簡單:
cscript synciwam.vbs [-v|-h]
“-v”參數表示詳細顯示指令碼執行的整個過程(建議使用),“-h”參數用於顯示簡單的協助資訊。
我們要同步iwam_myserver帳號在com+應用程式中的密碼,只需要執行“cscript synciwam.vbs -v”即可,如下:
cscript c:\inetpub\adminscripts\synciwam.vbs -v
microsoft (r) windows script host version 5.6
著作權(c) microsoft corporation 1996-2000。著作權所有,並保留一切權利。
wamusername:iwam_myserver
wamuserpass:aboutnt2001
iis applications defined:
name, appisolated, package id
w3svc, 0, 3d14228c-fbe1-11d0-995d-00c04fd919c1}
root, 2,
iishelp, 2,
iisadmin, 2,
iissamples, 2,
msadc, 2,
root, 2,
iisadmin, 2,
iishelp, 2,
root, 2,
root, 2,
out of process applications defined:
count: 1
3d14228d-fbe1-11d0-995d-00c04fd919c1}
updating applications:
name: iis out-of-process pooled applications key: 3d14228d-fbe1-11d0-995d-00c04fd919c1}
從上面指令碼的執行情況可以看出,使用synciwam.vbs指令碼要比使用元件服務的方法更全面和快捷。它首先從iis的metabase資料庫找到iwam帳號"iwam_myserver"並取出對應的密碼“aboutnt2001”,然後尋找所有已定義的iis applications和out of process applications,並逐一同步每一個out of process applications應用程式的iwam帳號密碼。
使用synciwam.vbs指令碼時,要注意一個問題,那就是在你運行synciwam.vbs之前,必須保證iis metabase資料庫與active directory中的iwam密碼已經一致。因為synciwam.vbs指令碼是從iis metabase資料庫而不是從active directory取得iwam帳號的密碼,如果iis metabase中的密碼不正確,那synciwam.vbs取得的密碼也會不正確,同步操作執行到“updating applications”系統就會報80110414錯誤,即“找不到應用程式 3d14228d-fbe1-11d0-995d-00c04fd919c1}”。
好了,到現在為止,iwam帳號在active directory、iis metabase資料庫和com+應用程式三處的密碼已經同步成功,你的asp程式又可以運行了!
修改成功後,系統會有如下提示:
---------------------------------------------------
經過測試,顯示應該是
wamuserpass: (string) "*******"