经常做.NET开发会遇到如下问题,实在郁闷,后来上网查了些资料总结一下,供那些有同样问题的朋友一起参详。

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

但是我确实在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的认证标签以及标签之间的东西全部去掉

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

标签(Tag): 应用程序级别

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

以上解决方法为网上摘录,使用于不同问题的解决。有其他问题的可留言共同探讨。

转载于:https://www.cnblogs.com/Jackey_Chen/archive/2010/05/15/1736063.html

在应用程序级别之外使用注册为 allowDefinition='MachineToApplication'相关推荐

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

    调试ASP.NET程序时发生错误:在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的.如果在 IIS 中没有将虚拟目录配置为应用程 ...

  2. 应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的(转载)...

    原文地址 应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错 出现这个错误时,在网上查了很多方法,开始还不行,后来终于遇到了一个可以的了 ...

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

    解决办法:将该项目所在目录设置为虚拟目录,右键-转为应用程序. 转载于:https://www.cnblogs.com/pangblog/p/3285763.html

  4. IIS出现 分析器错误消息: 在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的...

    这是因为发布的时候按了"生成部署包" 转载于:https://www.cnblogs.com/panjinzhao/p/4867721.html

  5. 在应用程序级别以外使用注册为 allowDefinition='MachineToApplication' 的节是错误的解决办法

    原文地址:http://www.cnblogs.com/DotNetNuke/archive/2008/09/30/1302498.html 在ASP.NET程序中,我们是可以在各个目录放置不同的we ...

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

    在应用程序级别以外使用注册为 allowDefinition='MachineToApplication' 的节是错误 在web.config文件之外注册为 allowDefinition='Mach ...

  7. GDCM:基本应用程序级别机密性配置文件测试程序

    GDCM:基本应用程序级别机密性配置文件 GDCM:基本应用程序级别机密性配置文件 GDCM:基本应用程序级别机密性配置文件 #include <memory> #include &quo ...

  8. spark学习 Java版SparkSQL程序读取Hbase表注册成表SQL查询

    参考: spark学习-SparkSQL–11-scala版写的SparkSQL程序读取Hbase表注册成表SQL查询 http://blog.csdn.net/qq_21383435/article ...

  9. Qt ApplicationAttribute/WidgetAttribute 程序级别属性

       Qt 不是开发语言,没有所谓的谁厉害.对于Qt本身来说老鸟跟新手区别只是谁遇到的问题更多.当然衡量Qter的水平主要还是看c++的水平. Qt ApplicationAttribute/Widg ...

  10. 微信小程序如何实现登录注册带源码

    前几天没事随手写了个小程序端的登录注册,现在分享给大家 一.登录微信前端 这是效果图与wxml代码 这是wxss代码 input{height: 100rpx; text-align: center; ...

最新文章

  1. 追根究底之以不变求万变:利用SetCapture捕获鼠标
  2. ASP.NET MVC Music Store教程(1):概述和新项目
  3. 边界都是1的最大正方形大小
  4. nohub 将程序永久运行下去
  5. 一个发布app测试版本的网站
  6. spring-cloud学习demo,git地址
  7. linux协议栈劫持,Linux系统优化之TCP协议栈优化-基本篇1
  8. 这样就算会了PHP么?-11
  9. ElasticSearch模糊查询(中文检索)
  10. 页面常见跳转的方法和选择
  11. 特斯拉:召回不涉及国产车型 也与“刹车失灵”无关
  12. cad插件制作教程_CAD电子签名制作教程
  13. JAVA451铝刀轮组怎么样,关于碳刀和铝刀轮组的区别
  14. h5商城模板_“公众号+小程序”才是做微信商城的正确方式
  15. 90+深度学习开源数据集整理|包括目标检测、工业缺陷、图像分割等多个方向...
  16. Mybatis源码研究7:缓存的设计和实现
  17. Oracle根据身份证号码判断性别,年龄
  18. 几种微弱信号处理电路
  19. 通过mysql修改后台密码_怎么通过修改数据库修改网站后台的管理员密码?
  20. Linux进程管理和服务控制

热门文章

  1. Caffe ImageNet例程翻译
  2. Python借助smote实现不均衡样本数据的上采样和下采样,并可视化展示样本分布
  3. python爬虫爬取网页图片_Python之多线程爬虫抓取网页图片
  4. DevOps技术学习路线图 初阶+中阶+高阶
  5. 怎么计算算法复杂度 big O
  6. 英语 没有听懂对方说什么 怎么说
  7. kubernetes视频教程笔记 (29)-安全-认证Authentication
  8. kubernetes视频教程笔记 (24)-存储-PV和PVC
  9. Docker教程小白实操入门(14)--如何使用CMD和ENTRYPOINT指令指定容器启动时要运行的命令
  10. 基于SSM的社区消毒防疫物资系统