系統是windows xp sp3,vs2010。安裝了iis 5.1 ,創建了虛擬目錄之后copy進去一個web sercices測試下能不能正常工作。
出現如下問題:
訪問 IIS 元數據庫失敗。 說明: 執行當前 Web 請求期間,出現未處理的異常。請檢查堆棧跟蹤信息,以了解有關該錯誤以及代碼中導致錯誤的出處的詳細信息。 異常詳細信息: System.Web.Hosting.HostingEnvironmentException: 訪問 IIS 元數據庫失敗。 用於運行 ASP.NET 的進程帳戶必須具有對 IIS 元數據庫(如 IIS://servername/W3SVC)的讀訪問權。有關如何修改元數據庫權限的信息,請參見 http://support.microsoft.com/?kbid=267904。 源錯誤: 執行當前 Web 請求期間生成了未處理的異常。可以使用下面的異常堆棧跟蹤信息確定有關異常原因和發生位置的信息。 堆棧跟蹤: [HostingEnvironmentException: 訪問 IIS 元數據庫失敗。] System.Web.Configuration.MetabaseServerConfig.MapPathCaching(String siteID, VirtualPath path) +690 System.Web.Configuration.MetabaseServerConfig.System.Web.Configuration.IConfigMapPath.MapPath(String siteID, VirtualPath vpath) +9 System.Web.Hosting.HostingEnvironment.MapPathActual(VirtualPath virtualPath, Boolean permitNull) +174 System.Web.CachedPathData.GetConfigPathData(String configPath) +398 System.Web.CachedPathData.GetConfigPathData(String configPath) +263 System.Web.CachedPathData.GetVirtualPathData(VirtualPath virtualPath, Boolean permitPathsOutsideApp) +166 System.Web.Configuration.RuntimeConfig.GetLKGRuntimeConfig(VirtualPath path) +187 -------------------------------------------------------------------------------- 版本信息: Microsoft .NET Framework 版本:2.0.50727.42; ASP.NET 版本:2.0.50727.42
百度了下,多數解決方法是
1、打開CMD,進入 C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727
2、輸入 aspnet_regiis.exe -i
理由是先安裝了vs后安裝iis的情況下需要重新注冊.net framework ,符合情況。
照做,但是問題沒解決。
發現了這句話:
注意:如果您正在使用 ASP.Net 2.0 且您必須授予 Windows 用戶帳戶元數據庫權限,請不要使用 MetaAcl 工具。而是運行帶 -ga 選項的 ASP.NET IIS 注冊工具命令。例如,以下命令將向 Windows 用戶帳戶授予對 IIS 元數據庫的 <WindowsUserAccount> 權限:
aspnet_regiis -ga <WindowsUserAccount>
看到希望了,方法明確指向錯誤提示中的“用於運行 ASP.NET 的進程帳戶必須具有對 IIS 元數據庫(如 IIS://servername/W3SVC)的讀訪問權”這句話,
進入 C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727 將<WindowsUserAccount> 替換為aspnet,即執行aspnet_regiis -ga aspnet命令,成功。
再次訪問服務,錯誤消失。