【问题标题】:IIS7: Possible causes of 'Unrecognized configuration path' errorIIS7:“无法识别的配置路径”错误的可能原因
【发布时间】:2011-01-23 04:32:00
【问题描述】:

在 IIS7 中设置 ASP.NET 网站后,我收到一个内部服务器错误 (500.19),上面写着:
'无法识别的配置路径'。

此错误的可能原因是什么?

(设置其他 ASP.NET 网站可以,但对于特定网站,它不起作用,我无法弄清楚其中的区别。)


详细的错误描述:

错误摘要:
HTTP 错误 500.19 - 内部服务器错误
请求的页面无法访问,因为该页面的相关配置数据无效。 详细错误信息:
模块:IIS Web 核心
通知:BeginRequest
处理人:尚未确定
错误代码:0x80070002
配置错误:无法识别的配置路径“MACHINE/WEBROOT/APPHOST/...”
配置文件:
请求的网址:http://...:80/
物理路径:
登录方式:尚未确定
登录用户:尚未确定
配置来源:
-1:
0:

【问题讨论】:

    标签: iis-7 configuration-files


    【解决方案1】:

    这发生在我们在新配置的机器上克隆了一个 GIT 裸存储库(位于我们服务器上的文件夹中)之后。

    我们尝试了@RemcoSchoeman 给出的步骤,但没有成功。当我们从项目的根文件夹中删除.vs 文件夹时,它又开始工作了。

    【讨论】:

      【解决方案2】:

      我发现在对 applicationhost.config 文件的站点配置进行了一些更改后,我遇到了同样的错误。在仔细查看并比较了一些正常运行的站点与其他运行不正常的站点之后,我注意到我显然已经破坏了我的一些站点的父应用程序配置。

      这是我收到“无法识别的配置路径”500.19 错误时的站点配置示例:

      <site name="Peanuts-Site" id="2345">
          <application path="/peanuts" applicationPool="Clr4IntegratedAppPool">
              <virtualDirectory path="/" physicalPath="C:\websites\Peanuts" />
          </application>
          <bindings>
              <binding protocol="http" bindingInformation="*:80:localhost" />
          </bindings>
      </site>
      

      这是我恢复已删除的父应用程序后的样子:

      <site name="Peanuts-Site" id="2345">
          <application path="/" applicationPool="Clr4IntegratedAppPool">
              <virtualDirectory path="/" physicalPath="C:\Users\firstname.lastname\Documents\My Web Sites\Peanuts-Site" />
          </application>
          <application path="/peanuts" applicationPool="Clr4IntegratedAppPool">
              <virtualDirectory path="/" physicalPath="C:\websites\Peanuts" />
          </application>
          <bindings>
              <binding protocol="http" bindingInformation="*:80:localhost" />
          </bindings>
      </site>
      

      当时我不知道,在指定任何未映射到站点根目录的应用程序时,IIS Express 似乎需要定义一个映射到站点根目录的应用程序。再想一想,这个要求毕竟确实是有道理的。

      经验教训 - 除非您知道自己在做什么,否则不要过分热心修剪。我很高兴我记得我做了什么,以便以后可以修复它。

      【讨论】:

      • 优秀的答案 - 节省了我很多时间:)
      • 做了同样的事情。务必在实际删除之前将要从配置文件中删除的内容注释掉,这样如果它中断,您可以轻松回滚更改。
      • 这太愚蠢了。这让你成为一个善于思考的天才。谢谢。
      【解决方案3】:

      我在使用 IISExpres 7.5 作为开发网络服务器时遇到了这样的错误:

      HTTP 错误 500.19 - 内部服务器错误 请求的页面无法访问,因为该页面的相关配置数据无效。

      详细错误信息:

      模块:IIS Web 核心

      通知:未知

      处理程序:尚未确定

      错误代码:0x80070002

      配置错误:无法识别的配置路径 'MACHINE/WEBROOT/APPHOST/.....'

      修复步骤:

      • 打开“%userprofile%\My Documents\IISExpress\config\applicationhost.config.”
      • 删除所有 system.applicationHost/sites/site 节点并保存文件。
      • 转到 web 项目的属性页面(在 VS2010 中),然后转到 web -> 服务器。
      • 勾选“使用 IIS Express”
      • 设置项目地址:(例如http://localhost:54230/my-web-site
      • 点击“创建虚拟目录”

      它现在应该又可以工作了。

      对我来说根本原因是我试图删除项目 url 的父应用程序。 先配置成http://localhost:54230/,后来我改成http://localhost:54230/my-web-site

      这引入了类似于these的配置错误

      删除父应用会破坏the configuration path 的链。

      【讨论】:

        【解决方案4】:


        我使用的是 IIS Express,但遇到了同样的错误。
        我做了什么,我将 applicationhost.config 文件从 Documents\IISExpress\config 移动到另一个地方,然后从命令提示符运行 iisexpress。
        它对我有用。

        【讨论】:

          【解决方案5】:

          我发现这取决于网站名称的长度。缩短名称使其工作(使其更长使其崩溃)。

          【讨论】:

            【解决方案6】:

            我遇到了同样的错误,但后来我设法通过将网站从 IIS 中完全删除并使用不同的名称再次添加它来使网站正常运行。

            但我仍然不知道背景是什么。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-11-01
              • 2010-11-20
              • 1970-01-01
              相关资源
              最近更新 更多