java获取500错误_HTTP 500错误
IIS5的HTTP?500內部服務器錯誤是我們經常碰到的錯誤之一,它的主要錯誤表現就是ASP程序不能瀏覽但HTM靜態網頁不受影響。另外當錯誤發生時,系統事件日志和安全事件日志都會有相應的記錄。具體如下……
一.錯誤表現
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程序又可以運行了!
HTTP?500錯誤原因及解決方法
1.????Q311766??HOW?TO:?Troubleshoot?"HTTP?500?-?Internal?Server
Error"?Message.
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q311766
.
2.????IWAM_computername?帳號密碼被修改.
解決方法:PRB:?Configured?Identity?Is?Incorrect?for?IWAM?Account
http://support.microsoft.com/default.aspx?scid=kb;en-us;q297989.
3.?Metabase?崩潰
解決方法:Q234429?How?to?Manually?Restore?the?Metabase?When?No
Backup?Exists
http://support.microsoft.com/default.aspx?scid=kb;en-us;q234429
.
4.?請檢查組建服務是否有問題
單擊開始,單擊程序,單擊管理工具,單擊組件服務。
單擊展開組件服務,展開計算機,展開我的電腦,展開COM+應用程序。
COM+應用程序下包含三項:?IIS?In-Process?Applications,IIS?Out-Of-Process
Pooled?Applications?and?IIS?Utilities。
如果您只能找到其中一項或兩項,或在展開的過程中出現錯誤,請參照下文。若該方法無法解決您的問題,請從一個有效備份中恢復IIS,或者修復、重裝IIS。
Q246309?How?to?Replace?a?Missing?IIS?In-Process?Application?in
MTS
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q246309。
http://support.microsoft.com/?scid=kb;en-us;Q301919。
Cannot?Expand?"My?Computer"?in?Component?Services?MMC?Snap-In
5.?重裝IIS
使用添加/刪除程序卸載IIS。
重起計算機
使用添加/刪除程序重裝IIS。
ASP頁面調試中500錯誤的幾點處理經驗
1.、錯誤的include.,如果在頁面中include了另外一個頁面,而這個頁面又不存在或者路徑錯誤,常會出現500錯誤
2、不匹配的循環或者流程控制語句,這個也經常出現,在比較復雜的頁面中,往往會出現多一個next或者loop之類的東西,就會500
3?、不匹配,我這兩天就遇到了好幾個。
4、一些未結束的語句,如dim?sql,sql2,如果后面多一個逗號之類的,也會500
5、執行一些會產生異常的動作。如刪除一個不存在文件,因為asp基本談不上支持異常處理,所以這種情況下一般也會500
總結
以上是生活随笔為你收集整理的java获取500错误_HTTP 500错误的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 的run代码_小心使用 Task.Run
- 下一篇: 计算机系统军训口号,霸气的军训口号大全