FIX:ASP.NET 無法使用網域控制站上的預設 ASPNET 帳戶

文章翻譯 文章翻譯
文章編號: 315158 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

徵狀

在網域控制站或備份網域控制站上安裝 Microsoft Visual Studio .NET 或 Microsoft .NET Framework 之後,如果您嘗試執行 ASP.NET 應用程式,瀏覽器會顯示下列錯誤訊息:
伺服器應用程式無法使用

您嘗試在此 Web 伺服器上存取的 Web 應用程式目前無法使用。

請按 Web 瀏覽器中的 [重新整理] 按鈕,再試一次。
此外,下列事件會記錄在系統應用程式事件日誌中:
由於在組態檔的 processModel 區段中提供了無效的使用者名稱和 (或) 密碼,所以無法啟動 aspnet_wp.exe 程式。
無法啟動 aspnet_wp.exe。
HRESULT for the failure: 80004005 (失敗的 HRESULT 為:80004005) 80004005
這項資訊適用於 Internet Information Services 5.0 (IIS) 或更新的版本。

發生的原因

根據預設,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 應用程式執行成 SYSTEM 或系統管理員帳戶,將會對安全性產生重大影響。如果您是使用這些替代解決方案其中之一,在 Aspnet_wp.exe 處理序中所執行的程式碼就會擁有網域控制站和網域設定的存取權限。從 Aspnet_wp.exe 處理序啟動的可執行檔都會在相同內容中執行,而且也具有網域控制站的存取權限。

因此,Microsoft 建議您採用第一種替代解決方案。如果要使用第一種替代解決方案,請依照下列步驟執行:
  1. 在名為 ASPUSER 電腦上建立使用者帳戶,再將這個帳戶加入至 Users 群組。

    注意 您也可以使用 .NET Framework 所建立的 ASPNET 帳戶,但是要先變更這個帳戶的密碼。您必須知道這個帳戶的密碼,因為您會在稍後步驟中,將密碼加入到 <processModel> 區段。
  2. 為 ASPUSER 或 ASPNET 帳戶授予 [以批次工作登入] 使用者權限。確定「本機安全性原則」設定中有出現這個變更。

    注意 如果要為這個帳戶授予 [以批次工作登入] 使用者權限,您可能必須要分別在下列安全性原則中授予這項使用者權限 (從 [控制台]/[系統管理工具]):

    • 網域控制站安全性原則
    • 網域安全性原則
    • 本機安全性原則

    注意 您可能必須重新啟動伺服器,才能讓這些變更生效。
  3. 確定 ASPUSER 或 ASPNET 帳戶擁有啟動 Aspnet_wp.exe 處理序和提供 ASP.NET 網頁服務時之所有必要目錄和檔案的存取權限。 如需有關您必須為這個帳戶授予哪些權限的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
    317012 ASP.NET 中的處理序及要求識別
  4. 開啟 Machine.config 檔案。這個檔案的路徑是:%Systemroot%\Microsoft.NET\Framework\v1.0.3705\CONFIG。
  5. 在 Machine.config 檔案的 <processModel> 區段中,將 userNamepassword 屬性變更為您在步驟 1 中所建立帳戶的名稱和密碼。例如:
    userName="DomainName\ASPUSER" password="ASPUSERpassword"
  6. 將這些變更儲存到 Machine.config 檔案中。

狀況說明

Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。 這個錯誤已經在 ASP.NET (包含於 .NET Framework) 1.1 中獲得修正。

?考

如需有關 ASP.NET 安全性的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
306590 INFO:ASP.NET 安全性概觀
如需詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
316989 建立從 ASP.NET 到 SQL Server 的受信任資料連線時,出現錯誤訊息:使用者 'AccountName'登入失敗
329290 如何使用 ASP.NET 公用程式加密認證及工作階段狀態的連接字串
317012 ASP.NET 中的處理序及要求識別

屬性

文章編號: 315158 - 上次校閱: 2008年2月1日 - 版次: 5.4
這篇文章中的資訊適用於:
  • Microsoft ASP.NET 1.0
  • Microsoft Internet Information Services 5.0
  • Microsoft Mobile Internet Toolkit 1.0
關鍵字:?
kbproductlink kbfix kbbug kbconfig kbhttpruntime kbreadme kbsecurity KB315158
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。
依現狀不再更新的知識庫內容免責聲明
本文旨在說明 Microsoft 不再提供支援的產品。因此,本文係依「現狀」提供,不會再更新。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com