天天看點

runonce篡改首頁+windows2003asp.net環境

HTTP-500 錯誤

http 500内部伺服器錯誤說明IIS伺服器無法解析ASP代碼,通路一個靜

态頁面試試是否也出現這個問題,如果通路靜态頁面沒問題,那就要分以下幾種

情況來分析了:

① 你是否改變過計算機名稱。

② 站點所在的檔案目錄是否自定義了安全屬性。

③ 安裝了域控制器後是否調整了域政策。如果是其中的一種情況,請一一将

改變的參數設定回來看是否解決問題。

如果靜态空間也無法通路,則說明解析還沒生效.

首先你要确定錯誤的原因:

讓IE顯示詳細的出錯資訊:

菜單--工具--Internet選項--進階--顯示友好的HTTP錯誤資訊,去掉這個選擇吧

,然後重新整理出錯頁,就可以看到詳細的出錯資訊,對幫助你确定錯誤所在非常有

幫助!

造成500錯誤常見原因有:ASP文法出錯、ACCESS資料庫連接配接語句出錯、檔案引用

與包含路徑出錯、使用了伺服器不支援的元件如FSO等。

另解釋:

xp下IIS5.1無法執行ASP檔案,錯誤!500 内部伺服器連接配接錯誤|解決方法

原因分析

綜合分析上面的錯誤表現我們可以看出,主要是由于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,

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) "*******"

http 500 内部伺服器錯誤可能和 IIS 伺服器無法加載應用程式有關具體是: 現象:

浏覽ASP時 HTTP500内部錯誤

[asp.net]解決IIS 伺服器無法加載應用程式 '/LM/W3SVC/1/ROOT' 錯誤是 '沒有注冊類别

檢視了一下事件檢視器:

[1]

伺服器無法加載應用程式 '/LM/W3SVC/1/ROOT'。錯誤是 '沒有注冊類别'。

[2]

無法啟動 MS DTC 事務管理器。

[3]

MS DTC 事務管理器啟動失敗。LogInit 傳回錯誤 0x2。。

[4]

找不到 MS DTC 日志檔案。在确認所有由 MS DTC 協調的資料總管不具有“不确定”狀态的事務之後,請運作 msdtc -resetlog 建立日志檔案。

解決辦法:

檢查你的DTC服務(Distributed Transaction Coordinator)是否可以正常啟動,如果正常的話請你跳過此步驟;如果出錯,無法正常啟動,請在開始菜單的運作中 運作:msdtc -resetlog以建立日志檔案。重起機器,檢查IIS是否可以正常使用,若不行繼續。

在CMD(.bat)下執行以下指令:

cd %windir%\system32\inetsrv

rundll32 wamreg.dll, CreateIISPackage

regsvr32 asptxn.dll

重起電腦

我到這裡就已經解決問題了!(問題是漫漫發現的,需要一起解決)

2安全系數調到中,

3.

沒有啟用asp支援:

啟用Asp支援

Windows Server 2003 預設安裝,是不安裝 IIS 6 的,需要另外安裝。安裝完 IIS 6,還需要單獨開啟對于 ASP 的支援。

第一步,啟用Asp,進入:控制台 -> 管理工具 ->IIS(Internet 伺服器)- Web服務擴充 -> Active Server Pages -> 允許

控制台 -> 管理工具 ->IIS(Internet 伺服器)- Web服務擴充 -> 在服務端的包含檔案 -> 允許

第二步,啟用父路徑支援。

IIS-網站-主目錄-配置-選項-啟用父路徑

第三步,權限配置設定

IIS-網站-(具體站點)-(右鍵)權限-Users完全控制

runonce篡改首頁

繼續閱讀