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