VS调试项目出现"访问IIS元数据库失败"的267904错误解决方法


  今天重做系统后,新装了VS2008和IIS6.将原来的ASP.NET程序重新部署配置完。做访问测试的时候,出现了"访问IIS元数据库失败"的错误。
  在本地访问home.aspx页面时出现如下报错信息:
  -------------------------------------------------- ------------------------------
  访问 IIS 元数据库失败。 
  说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
  异常详细信息: System.Web.Hosting.HostingEnvironmentException: 访问 IIS 元数据库失败。
  用于运行 ASP.NET 的进程帐户必须具有对 IIS 元数据库(如 IIS://servername/W3SVC)的读访问权。有关如何修改元数据库权限的信息,请参见 http://support.microsoft.com/?kbid=267904。
  源错误:
  执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。
  堆栈跟踪: 
  [HostingEnvironmentException: 访问 IIS 元数据库失败。]
  -------------------------------------------------- ------------------------------
  版本信息: Microsoft .NET Framework 版本:2.0.50727.42; ASP.NET 版本:2.0.50727.42
  调整几次后,还是出现这个问题,在IIS的属性窗体的ASP.NET选项卡中,发现Framework的版本是1.1的,而不是期望的2.0,且不能选择2.0。
  网上搜索后,发现导致这个问题的原因是VS和IIS安装顺序颠倒导致。若先安装VS再安装IIS,就会出现VS不能自动在IIS中注册相关信息,结果就是这个错误。
  知道了原因也就可以解决问题了。
  解决方法如下:
  1.打开CMD,进入 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
  2.输入 aspnet_regiis.exe -i ,稍等片刻,注册成功就解决问题了。   
  此时再去访问刚才的home.aspx,正常解析并显示了。
  另外,看网上还有的网友说这样做也不行,因为会在执行aspnet_regiis.exe -i的时候失败。
  这个现象我初步估计是因为在VS中存在ASP.NET项目调试失败后的临时文件,就跟Eclipse一样,只要删除work下的临时目录就可以了。
  解决方法方法如下:
  1.关闭VS开发环境,进入 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temp orary ASP.NET Files,删除里面的全部文件。
  2.重启IIS服务。
  3.再次注册,成功。

猜你喜欢

转载自meikanbao.iteye.com/blog/1572132