allowDefinition='MachineToApplication' 的节是错误的解决办法
错误 在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误。 E:\wujinzhi\MyBookShop\MyBookShop\Web.Config 28
[来源:http://Doc163.com]
[资料来源:http://Doc163.com]
解决办法:
(1)把虚拟目录配置成应用程序
(2)把web.config的认证标签以及标签之间的东西全部去掉
说白了,这个问题应该是你没有将你的应用放在站点的根目录下吧,而是放在虚拟目录下,可能需要设置一下:
起因:要让一个web程序的根目录下的文件可以自由访问,admin目录下的文件只有通过验证后的用户才能访问。
用VS2005+asp.net2.0调试时,在根目录下的一个子目录(即:admin) 的web.config文件里配置了 [资料来源:Doc163.com]
<authentication mode="Forms">
<forms loginUrl="~/admin/login.aspx" name="login" />
</authentication>
[来源:http://www.doc163.com]
运行时发生错误:
错误 21 在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误。 E:\Program Files\vs2005project\webapp1\admin\Web.config 12
原因:Machine.config里的allowDefinition="MachineToApplication"。 [资料来源:Doc163.com]
解决1:把allowDefinition设为:Everywhere。考虑到最好不要改动Machine.config文件,否则可能会引起其他错误。
解决2:<authentication mode="Forms"> 是应用级别的,不能在子目录级别的web.config内
设置,把它放在应用级别的web.config里,在子目录下用<authorization>节来控制访问。
[资料来源:https://www.doc163.com]
即:<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web> [来源:http://www.doc163.com]
根目录下的web.config: [资料来源:http://doc163.com]
<authentication mode="Forms">
<forms loginUrl="~/admin/login.aspx" name="login" />
</authentication>
<authorization>
[资料来源:https://www.doc163.com]
<allow users="*" />
</authorization> [资料来源:https://www.doc163.com]
[资料来源:http://www.doc163.com]