close

最近因為工作的需求,開始用ASP.NET,辛苦編輯了一個程式,結果一執行卻說我沒有權限存取 IIS Metabase。
幸好我找到了下面的解決辦法,不然真是頭大。

錯誤訊息如下:

中文版

無法存取 IIS Metabase。
描述: 在執行目前 Web 要求的過程中發生未處理的例外情形。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。
例外詳細資訊: System.Web.Hosting.HostingEnvironmentException: 無法存取 IIS Metabase。
用來執行 ASP.NET 的處理序帳戶必須擁有 IIS Metabase (例如 IIS://servername/W3SVC) 的讀取權限。如需修改 Metabase 使用權限的詳細資訊,請參閱
http://support.microsoft.com/?kbid=267904

英文版

Failed to access IIS metabase.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Web.Hosting.HostingEnvironmentException: Failed to access IIS metabase.
The process account used to run ASP.NET must have read access to the IIS metabase (e.g. IIS://servername/W3SVC). For information on modifying metabase permissions, please see
http://support.microsoft.com/?kbid=267904.


常見情境:
.已經安裝好.NET Framework 2.0的機器,事後才加裝IIS
.IIS被移除重裝過

一般來說,安裝.NET Framework 2.0時,若安裝程式偵測到機器上有IIS,會向IIS註冊以便能執行ASP.NET 2.0。若先裝了.NET 2.0才裝IIS,就漏掉這個一註冊ASP.NET程序了(不過就算沒註冊,IIS的應用程式選項裡還是可以看到ASP.NET 2.0,讓人誤以為ASP.NET 2.0已裝好,又一個陷阱),必須手動執行,如下:

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis.exe -i

(PS: 另外,也可以試看看執行.NET 2.0修復)

本來只是個小問題,不過由於錯誤訊息給得不甚明確,又扯了一堆W3SVC, IIS Metabase看似可怕的名詞,最後還扯到了權限問題,應該嚇壞一堆裝好IIS正要埋頭開始學ASP.NET的熱血新人。網路上看到不少人問了這個問題,就用這篇文章讓Google查詢"無法存取IIS Metabase"的傳回結果多一則吧!

arrow
arrow
    全站熱搜

    jonas1011 發表在 痞客邦 留言(0) 人氣()