IIS7:"无法识别的配置路径"错误的可能原因

Ole*_*nge 14 iis-7 configuration-files

在IIS7中设置ASP.NET网站后,我收到内部服务器错误(500.19),其中显示:
"无法识别的配置路径".

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

(设置其他ASP.NET网站工作正常,但对于特定网站,它不起作用,我无法弄清楚它们之间的区别.)


详细的错误描述:

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

por*_*cus 36

我发现在对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>
Run Code Online (Sandbox Code Playgroud)

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

<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>
Run Code Online (Sandbox Code Playgroud)

当我不知道的是,IIS Express似乎需要定义一个应用程序,在指定未映射到站点根目录的任何应用程序时,该应用程序将映射到站点根目录.而在第二个想法,这个要求实际上确实有意义.

获得的经验 - 除非你知道自己在做什么,否则不要进行过度热情的修剪狂欢.我很高兴我记得我做了什么,所以我可以稍后修复它.

  • 做了同样的事情.在实际删除之前,请始终注释掉要从配置文件中删除的内容,这样如果它中断,您可以轻松地回滚更改. (2认同)
  • 这很愚蠢.这让你成为一个天才.谢谢. (2认同)

Rem*_*man 6

使用IISExpres 7.5作为开发Web服务器时出现这样的错误:

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

详细错误信息:

模块:IIS Web Core

通知:未知

处理程序:尚未确定

错误代码:0x80070002

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

修复步骤:

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

它现在应该再次运作.

我的根本原因是我试图删除项目URL的父应用程序.它首先配置为http://localhost:54230/,然后我将其更改为http://localhost:54230/my-web-site

这引入的配置错误有点像这些

删除父应用程序打破了配置路径的链.


Ole*_*nge 0

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