把web.config文件从根目录移到子目录Website内报错:It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level
从网上找了篇英文文章:
翻译
你可能在浏览一个ASP.NET网页的时候遇到这个错误。
错误提示是:编译信息提示:虚目录在IIS中不能配置
然而这种错误主要在两种情形出现。
1.当你使用Visual Studio创建一个web运用,他会自动创建虚目录并将它配置成一个应用。
但是当你手动创建虚目录它不会自动配置成一个应用,所以你与遇到这个错误而不能浏览页面。你会得到上面的错误提示,这是情形一。
解决它的方法是右击虚目录,选择属性,点击”应用“傍边的“创建“
2.当在你的应用程序中有子目录的时候,你可以将web.config放在子目录中,但是一些节点是不能再这个web.config中设置的,比如authentication, session state (你会在错误提示信息中看到这些节点的行数)原因是这是节点设置不能代替所有子节点内的web应用的设置,除非这些子目录也被配置成一个应用。
很多时候我们都有为了处理子目录中的应用而在子目录中添加一个web.config的经历默认情况我们可以在应用程序的根目录下通过设置路径和权限获取这个web.config,如下:
<location path="Admin">
<system.web>
<authorization>
<allow roles="administrators" /><deny users="*" />
</authorization>
</system.web>
</location>
如果你想在子目录中设置一个web.config文件你可以这样设置
<configuration>
<system.web>
<authorization>
<allow roles="administrators" />
<deny users="*" />
</authorization>
</system.web>
</configuration>