zoukankan      html  css  js  c++  java
  • [原创]应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的

    应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错
    出现这个错误时,在网上差了很多方法,开始还不行,后来终于遇到了一个可以的了,现总结下我查到的所有解决方法:

               一、起因: 当前项目已经存在了一个web.config,也就是说再添加该项目时,就会继承该web.config,如果你再加的话,就会发生冲突。
    解决方法:如果有一个web.cofig没有用的话可删除。当然有用的话删除会引起更多错误,看下面别的原因。

             二、起因:要让一个web程序的根目录下的文件可以自由访问,admin目录下的文件只有通过验证后的用户才能访问。
    解决方法:用VS2005+asp.net2.0调试时,在根目录下的一个子目录(即:admin) 的web.config文件里配置了
          <authentication mode="Forms">
             <forms loginUrl="~/admin/login.aspx" name="login"    />
          </authentication>
    运行时发生错误:
    错误 21 在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误。 E:\Program Files\vs2005project\webapp1\admin\Web.config 12

             三、起因:Machine.config里的allowDefinition="MachineToApplication"。

    解决1:把allowDefinition设为:Everywhere。考虑到最好不要改动Machine.config文件,否则可能会引起其他错误。

    解决2:<authentication mode="Forms"> 是应用级别的,不能在子目录级别的web.config内 
    设置,把它放在应用级别的web.config里,在子目录下用<authorization>节来控制访问。
    即:<system.web>
                   <authorization>
                        <deny users="?"/>
                   </authorization>
            </system.web>

    根目录下的web.config:
    <authentication mode="Forms">
            <forms loginUrl="~/admin/login.aspx" name="login"    />
          </authentication>
          <authorization>
            <allow users="*" />
          </authorization>

                四、起因:如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误。
        解决方法:建立虚拟目录(默认网站--右键——新建——虚拟目录)。

              五、起因:web.config 的某些配置节只能出现在网站的虚拟目录跟目录中。
        解决方法:把你的虚拟目录指向web.config所在在文件夹。

  • 相关阅读:
    12
    11
    10
    9
    8
    7
    6
    5
    4
    3
  • 原文地址:https://www.cnblogs.com/101rico/p/2913318.html
Copyright © 2011-2022 走看看