首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

在应用程序级别之外使用注册为allowDefinition='MachineToApplication' 的节是异常的

2012-12-28 
在应用程序级别之外使用注册为allowDefinitionMachineToApplication 的节是错误的在应用程序级别之外使

在应用程序级别之外使用注册为allowDefinition='MachineToApplication' 的节是错误的

在应用程序级别之外使用注册为allowDefinition='MachineToApplication' 的节是错误的在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误

的。如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误。
???? 但是我确实在IIS中配置为应用程序了

解决方法:将此方案中的web.config文件删除掉,就ok了。

因为当前项目已经存在了一个web.config,也就是说再添加该项目时,就会继承该web.config,如果你再加的话,就会发生冲突。

******************************************************************************************************************


在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的

原因:如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误。

1、若IIS中没有应用程序名,先创建,若还不行把C:\WINDOWS\Microsoft.NET\work\v2.0.50727\CONFIG\machine.config中的所有allowDefinition="MachineToApplication"改为

allowDefinition="Everywhere"

2、在网站对应的虚拟目录上右键,选属性,然后在应用程序名后点创建。

3.把你的虚拟目录指向web.config所在在文件夹,因为 web.config 的某些配置节只能出现在网站的虚拟目录跟目录中。


另例一:

在ASP.NET2.0中,如果根目录允许匿名用户访问,而根目录下的一个页面(如Index.aspx)必须要登录(假设登录页面为login.aspx)后才能访问,根目录下的web.config文件必须这样配置:

<?xml version="1.0"?><configuration><appSettings></appSettings><connectionStrings></connectionStrings><system.web>        <compilation debug="true"/>        <authentication mode="Windows"/>           <authentication mode="Forms">                <forms loginUrl="login.aspx" protection="All" path="/" timeout="30"/>            </authentication>        <authorization>     <!--允许匿名-->    <allow users="?"/>    </authorization></system.web><location path="Info.aspx">    <system.web><!--认证项配置(在为一个单独页面指定认证信息时,authentication节只能从这个目录继承,不能单独设置)-->      <!--      <authentication mode="Forms">        <forms name=".www.cnpp.info" loginUrl="login.aspx" protection="All" path="/" timeout="30"/>      </authentication>      --><!--用户访问控制-->        <authorization>        <!--阻止匿名-->        <deny users="?"/>      </authorization>    </system.web></location> </configuration>

?

也就是在需要认证的页面配置节中不能配置authentication项,只能在在根目录中配置authentication项,Info.aspx从根目录继承. 否则会出现这样的错误: "在应用程序级别之外

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


另例二:

我想让用户在访问我的程序的Admin文件夹下的页面时需要登录,而在访问其他页面时则不需要,也就是说Admin文件夹下的文件拒绝匿名访问.
?? 下面是配置根目录下的web.config文件中关于授权验证的配置:

 <system.web>         <authentication mode="Forms">             <forms loginUrl="Admin/Login.aspx"></forms>         </authentication>         <authorization>             <allow users="*"/>         </authorization>   </system.web>   <location path="Admin">         <system.web>             <authorization>                 <deny users="?"/>             </authorization>         </system.web>   </location>

?
???? 注意location节,location节不需要<authorization>节了,假若加了的话,便会出现"在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' "这样的错误了

,若在子文件下添加配置文件时也要注意相同的问题.

******************************************************************************************************************
(1)把虚拟目录配置成应用程序
(2)把web.config的认证标签以及标签之间的东西全部去掉

说白了,这个问题应该是你没有将你的应用放在站点的根目录下吧,而是放在虚拟目录下,可能需要设置一下:

?

热点排行