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

在ASP.NET2.0中,如果根目录允许匿名用户访问,而根目录下的一个页面(如Info.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 中没有将虚拟目录配置为应用程序,则可能导致此错误 "

最后验证了一个是<authentication> <form 节只能出现在根站点或应用程序站点中
zdyguilong(Keep Walking!)
回复:web.config配置问题

学习了,
ncpuam()
回复:web.config配置问题

<authentication> <form>节只能出现在根站点或应用程序站点中,而且如果根目录有了<authentication> <form>节,那么子目录的就自动从根目录继承了,所以只能在根目
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
找了半天,发现原因是你创建的虚拟目录的下面一级没有创建,而且你的网站是移动了目录的。      
       
    如你的主网站是       localhost      
    在localhost下创建虚拟目录       指向       E:/web       命名为       WebDev      
    而你的网站工程是放在       E:/web/myweb下面。      
       
    整个目录为       //localhost/WebDev/myweb      
       
    这时       点虚拟目录的属性的话       WebDev是已经创建了的。      
    但是你的       myweb       目录属性没有创建,要手动自己创建。      
    创建了就没事了。      
       
    ps:这就看出如果你的虚拟目录直接指向你放网站工程的目录(E:/web/myweb的话就没这个问题。不过如果同时有几个网站工程在编写的话,指向WebDev就行了。创建新的项目的时候就可以用       localhost/WebDev/webapplication1来把工程文件放到       E:/web/webapplication1文件夹下,新创不需要设定虚拟目录创建应用程序  
这是我找到的答案,我试了一下发现是正确的,希望对有同样问题的有帮助。
 
  
 
minkingshine
sofen
等 级:
 发表于:2007-04-16 22:30:354楼 得分:0
看看你的网站的IIS   运行池启动了没有     要是没有启动的话也会出现这样的情况
 
  
 
liuluo520
孤单一吻
等 级:
 发表于:2007-04-18 14:28:305楼 得分:0
将BIN目录放到站点根目录下
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值