当前位置: 代码迷 >> Web前端 >> 注册为 allowDefinition='MachineToApplication' 的节是异常的
  详细解决方案

注册为 allowDefinition='MachineToApplication' 的节是异常的

热度:398   发布时间:2013-10-21 17:00:48.0
注册为 allowDefinition='MachineToApplication' 的节是错误的

错误:应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的,如果在IIS中没有将虚拟目录配置为应用程序,则可能导致此错误。

首先,确定你是否正确安装iis,下面先介绍一下如何装好iis8.

 windows2003的iis6想必大家都会,操作起来是有些复杂,不过也有人制作出来一键安装iis包,只需要一点即可自动安装。iis发展到win8已经到是iis8.0了。至于如何安装的,咱们接下来看。大体和iis6安装差别不大。iis8安装起来也是很方便的。

  1、打开“控制面板”――“程序和功能”。如下图所示

Win8如何开启IIS功能 支持asp、asp.net 三联

  2、点击“启用或关闭Windows功能”,在打开的Windows功能窗口中找到“Internet信息服务”项,如下图所示

image

  3、点开“Internet信息服务”,找到其下的“应用程序开发功能”项,勾选asp、服务器端包含等。如下图所示

image

  如果需要.net可以在其前打上对号,确定即可。等待成功后重启计算机。输入http://localhost/看是不是会出现iis8标示。如下图。

image

装好后出现该错误,我总结了一下,有如下原因和解决方法:

         一、起因: 当前项目已经存在了一个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所在在文件夹。