|
|
1
6
这是ASP.NET配置的层次结构。也许这有助于理解哪些设置会相互覆盖。 服务器machine.config:machine.config文件包含服务器上所有Web应用程序的ASP.NET架构。此文件位于配置合并层次结构的顶部。 根网web.config:服务器的web.config文件与machine.config文件存储在同一目录中,并且包含大多数system.web配置节的默认值。在运行时,此文件在配置层次结构中从顶部第二个合并。 网站web.config:特定网站的web.config文件包含应用于该网站并通过该网站的所有ASP.NET应用程序和子目录向下继承的设置。 ASP.NET应用程序根目录web.config:特定ASP.NET应用程序的web.config文件位于应用程序的根目录中,包含应用于Web应用程序并通过其分支中的所有子目录向下继承的设置。 ASP.NET应用程序子目录web.config:应用程序子目录的web.config文件包含应用于此子目录并通过其分支中的所有子目录向下继承的设置。 客户端应用程序目录applicationname.config:applicationname.config文件包含Windows客户端应用程序(而不是Web应用程序)的设置。 了解哪些ASP.NET文件和文件夹是通过文件夹和应用程序继承的,对于开发和故障排除非常重要。 下面是一个简短的总结:
因此,这意味着根web.config文件中设置的任何内容都将继承整个站点,即使某些文件夹被标记为应用程序。 如果web.config文件有对程序集的引用,但子应用程序没有这些程序集,则会出现混乱。例如,假设您在站点的根目录中配置了一个HTTP模块,并且引用了站点web.config文件。如果有一个名为/subfolder的子应用程序被标记为应用程序,则/subfolder将尝试从/subfolder/bin加载HTTP处理程序。因为它不存在,所以会抛出一个错误。 有多种方法可以解决这个问题。如果在/subfolder中不需要HTTP处理程序,最干净的方法可能是通过在/subfolder/web.config文件中添加子句来“删除”引用。你可以这样做。下面是如何删除子文件夹中的HTTP模块的示例:
以下是网站web.config的外观:
|
|
|
2
0
根据你在评论中所说的,我建议你“尝试错误”。 如果故意插入错误条目,会发生什么情况?应用程序是否失败或不影响任何内容? 尝试复制内容,然后从头删除并重新创建该文件。 |
|
|
3
0
首先,非常感谢你的回答,我真的很感谢你的帮助! 只是这个问题的更新。这是一个艰难的时刻! 结果,代码或配置没有任何问题。 服务器场似乎发生了一些奇怪的事情(我完全无法控制或访问)。 系统管理员重新构建了服务器场,重新部署了解决方案,一切正常工作。 我想我们永远不会知道哪里出了问题,但至少我们知道这不是一个发展问题! 再次感谢 抢劫 |