百度空间 | 百度首页 
               
 
查看文章
 
在应用程序级别之外使用注册为 allowDefinition='MachineToApplication'
2007-07-11 11:23
关于“在应用程序级别之外使用注册为 allowDefinition='MachineToApplication'”的错误

起因:要让一个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>


类别:Net2 | 添加到搜藏 | 浏览() | 评论 (6)
 
最近读者:
 
网友评论:
1
2008-03-27 14:47 | 回复
支持一下,我一直对这部分很模糊,今天解惑了.
 
2
2008-03-28 09:53 | 回复
顶一下
 
3
2008-05-27 14:39 | 回复
我怎么还不明白呢 帮帮忙啊 我都快急疯了 我的QQ 412672128 万分感激!!!
 
4
2008-05-28 12:26 | 回复
Machine.config是个什么文件? 我这里没有啊,没有看到“allowDefinition='MachineToApplication'”这句啊
 
5
2008-06-09 09:40 | 回复
非常感谢
 
6
2008-06-17 16:01 | 回复
学习了
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu