本文的發布號曾為 chs315158
癥狀
在域控制器或備份域控制器上安裝 microsoft visual studio .net 或 microsoft .net framework 后,如果您嘗試運行 asp.net 應用程序,則瀏覽器會顯示下面的錯誤信息:
server application unavailable
the web application you are attempting to access on this web server is currently unavailable.
please hit the "refresh" button in your web browser to retry your request.
此外,系統應用程序事件日志中會記錄以下事件:
aspnet_wp.exe could not be launched because the username and/or password supplied in the processmodel section of the config file are invalid.
aspnet_wp.exe could not be started.
hresult for the failure: 80004005
此問題涉及 internet 信息服務 (iis) 5.0 版或更高版本。
原因
默認情況下,為了提供更安全的環境,asp.net 用權限較弱的帳戶(名為 aspnet 的本地計算機帳戶)運行其輔助進程 (aspnet_wp.exe)。在域控制器或備份域控制器上,所有的用戶帳戶都是域帳戶,而不是本地計算機帳戶。因此,aspnet_wp.exe 會由于找不到名為“localmachinename/aspnet”的本地帳戶而無法啟動。若要在域控制器上提供有效的用戶帳戶,必須在 machine.config 文件的 <processmodel> 部分指定顯式帳戶,或者必須使用 system 帳戶。
注意:如果在嘗試瀏覽頁面之前嘗試進行調試(單擊啟動按鈕),也會遇到這一問題。
解決方案
要解決此問題,請使用下列方法之一: • 創建具有正確權限的弱帳戶,然后配置 machine.config 文件的 <processmodel> 部分以使用該帳戶。
• 在 machine.config 文件的 <processmodel> 部分,將 username 屬性設置為 system。
• 配置 machine.config 文件的 <processmodel> 部分以使用管理員帳戶。
注意:在 asp.net 1.1 中,aspnet 的進程標識為 iwam_machinename,所以不存在此問題。
注意:如果允許 asp.net 應用程序作為 system 或管理員帳戶運行,將帶來嚴重的安全問題。如果使用其中的任一種替代方法,在 aspnet_wp.exe 進程中運行的代碼都將有權訪問域控制器和域設置。從 aspnet_wp.exe 進程啟動的可執行文件在相同的上下文中運行,它們也有權訪問域控制器。
因此,microsoft 建議使用第一種替代方法。若要使用第一種替代方法,請按照下列步驟操作: 1. 在計算機上創建名為 aspuser 的用戶帳戶,然后將此帳戶添加到用戶組中。
注意:如果更改了 .net framework 創建的 aspnet 帳戶的密碼,也可以使用該帳戶。您必須知道此帳戶的密碼,因為需要在后面的步驟中將該密碼添加到 <processmodel> 部分。
2. 授予 aspuser 或 aspnet 帳戶“作為批處理作業登錄”用戶權限。確保此更改出現在“本地安全策略”設置中。
注意:若要向此帳戶授予“作為批處理作業登錄”用戶權限,可能必須在以下每一個安全策略中都授予此用戶權限(從控制面板/管理工具開始操作):
• 域控制器安全策略
• 域安全策略
• 本地安全策略
注意:您可能必須重新啟動服務器以使這些更改生效。
3. 確保 aspuser 或 aspnet 帳戶有權訪問啟動 aspnet_wp.exe 進程和為 asp.net 頁提供服務所必需的全部目錄和文件。 有關必須授予此帳戶何種權限的其他信息,請單擊下面的文章編號,以查看 microsoft 知識庫中相應的文章:
317012 (http://support.microsoft.com/kb/317012/) asp.net 中的進程和請求標識
4. 打開 machine.config 文件。該文件的路徑是:%systemroot%/microsoft.net/framework/v1.0.3705/config。
5. 在 machine.config 文件的 <processmodel> 部分,將 username 和 password 屬性更改為您在第一步中創建的帳戶的名稱和密碼。例如:
username="domainname/aspuser" password="aspuserpassword"
6. 保存對 machine.config 文件所做的更改。
狀態
microsoft 已經確認這是本文開頭列出的 microsoft 產品中存在的錯誤。 此錯誤在 asp.net(包括在 .net framework 中)1.1 版中得到了糾正。
參考
有關 asp.net 安全性的其他信息,請單擊下面的文章編號,以查看 microsoft 知識庫中相應的文章:
306590 (http://support.microsoft.com/kb/306590/) info:asp.net 安全性概述
有關其他信息,請單擊下面的文章編號,以查看 microsoft 知識庫中相應的文章:
316989 (http://support.microsoft.com/kb/316989/) prb:在創建從 asp.net 到 sql server 的受信任數據連接時出現“login failed”(登錄失?。╁e誤信息
329290 (http://support.microsoft.com/kb/329290/) 如何使用 asp.net 工具加密憑據和會話狀態連接字符串
317012 (http://support.microsoft.com/kb/317012/) asp.net 中的進程和請求標識
--------------------------------------------------------------------------------
這篇文章中的信息適用于:
• microsoft asp.net 1.0
• microsoft internet information services 5.0
• microsoft mobile internet toolkit 1.0
新聞熱點
疑難解答
圖片精選