在域控制器上ASP.NET出現(xiàn)癥狀解決方案
癥狀
在域控制器或備份域控制器上安裝MicrosoftVisualStudio.net或Microsoft.NETFramework后,如果您嘗試運(yùn)行ASP.NET應(yīng)用程序,則瀏覽器會(huì)顯示下面的錯(cuò)誤信息:
- ServerApplicationUnavailable
- TheWebapplicationyouareattemptingtoAccessonthiswebserveriscurrentlyunavailable.
- Pleasehitthe"Refresh"buttoninyourwebbrowsertoretryyourrequest.
此外,系統(tǒng)應(yīng)用程序事件日志中會(huì)記錄以下事件:
- aspnet_wp.execouldnotbelaunchedbecausetheusernameand/orpasswordsuppliedintheprocessModelsectionoftheconfigfileareinvalid.
- aspnet_wp.execouldnotbestarted.
- HRESULTforthefailure:80004005此問題涉及Internet信息服務(wù)(IIS)5.0版或更高版本。
原因
默認(rèn)情況下,為了提供更安全的環(huán)境,ASP.NET用權(quán)限較弱的帳戶(名為ASPNET的本地計(jì)算機(jī)帳戶)運(yùn)行其輔助進(jìn)程(Aspnet_wp.exe)。在域控制器或備份域控制器上,所有的用戶帳戶都是域帳戶,而不是本地計(jì)算機(jī)帳戶。因此,Aspnet_wp.exe會(huì)由于找不到名為“localmachinename\ASPNET”的本地帳戶而無法啟動(dòng)。若要在域控制器上提供有效的用戶帳戶,必須在Machine.config文件的<processModel>部分指定顯式帳戶,或者必須使用SYSTEM帳戶。
注意
如果在嘗試瀏覽頁面之前嘗試進(jìn)行調(diào)試(單擊啟動(dòng)按鈕),也會(huì)遇到這一問題。
解決方案
要解決此問題,請(qǐng)使用下列方法之一:創(chuàng)建具有正確權(quán)限的弱帳戶,然后配置Machine.config文件的<processModel>部分以使用該帳戶。在Machine.config文件的<processModel>部分,將userName屬性設(shè)置為SYSTEM。配置Machine.config文件的<processModel>部分以使用管理員帳戶。
注意
在ASP.NET1.1中,ASPNET的進(jìn)程標(biāo)識(shí)為IWAM_MachineName,所以不存在此問題。
注意
如果允許ASP.NET應(yīng)用程序作為SYSTEM或管理員帳戶運(yùn)行,將帶來嚴(yán)重的安全問題。如果使用其中的任一種替代方法,在Aspnet_wp.exe進(jìn)程中運(yùn)行的代碼都將有權(quán)訪問域控制器和域設(shè)置。從Aspnet_wp.exe進(jìn)程啟動(dòng)的可執(zhí)行文件在相同的上下文中運(yùn)行,它們也有權(quán)訪問域控制器。
因此,Microsoft建議使用***種替代方法。若要使用***種替代方法,請(qǐng)按照下列步驟操作:在計(jì)算機(jī)上創(chuàng)建名為ASPUSER的用戶帳戶,然后將此帳戶添加到用戶組中。
注意
如果更改了.NETFramework創(chuàng)建的ASPNET帳戶的密碼,也可以使用該帳戶。您必須知道此帳戶的密碼,因?yàn)樾枰诤竺娴牟襟E中將該密碼添加到<processModel>部分。授予ASPUSER或ASPNET帳戶“作為批處理作業(yè)登錄”用戶權(quán)限。確保此更改出現(xiàn)在“本地安全策略”設(shè)置中。
注意
若要向此帳戶授予“作為批處理作業(yè)登錄”用戶權(quán)限,可能必須在以下每一個(gè)安全策略中都授予此用戶權(quán)限(從控制面板/管理工具開始操作):
域控制器安全策略域安全策略本地安全策略
注意
您可能必須重新啟動(dòng)服務(wù)器以使這些更改生效。確保ASPUSER或ASPNET帳戶有權(quán)訪問啟動(dòng)Aspnet_wp.exe進(jìn)程和為ASP.NET頁提供服務(wù)所必需的全部目錄和文件。有關(guān)必須授予此帳戶何種權(quán)限的其他信息,請(qǐng)單擊下面的文章編號(hào),以查看Microsoft知識(shí)庫中相應(yīng)的文章:317012INFO:ASP.NET中的進(jìn)程和請(qǐng)求標(biāo)識(shí)
http://www.mscto.com
打開Machine.config文件。該文件的路徑是:%Systemroot%\Microsoft.NET\Framework\v1.0.3705\CONFIG。在Machine.config文件的<processModel>部分,將userName和password屬性更改為您在***步中創(chuàng)建的帳戶的名稱和密碼。例如:
userName="DomainName\ASPUSER"password="ASPUSERPassword"
保存對(duì)Machine.config文件所做的更改。
狀態(tài)
Microsoft已經(jīng)確認(rèn)這是本文開頭列出的Microsoft產(chǎn)品中存在的錯(cuò)誤。此錯(cuò)誤在ASP.NET(包括在.NETFramework中)1.1版中得到了糾正。
ASP.NET 在域控制器上使用默認(rèn),而ASP.NET 帳戶不能正常運(yùn)行的癥狀相信大家也遇見過,知道解決方案了大家就自己動(dòng)手排除這個(gè)小故障吧。
【編輯推薦】