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

在ASP.NET程序中,我们是可以在各个目录放置不同的web.config文件的,但有时在非根目录先放置的web.config文件会导致这样的错误提示:

 

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

"It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level.  This error can be caused by a virtual directory not being configured as an application in IIS. "

 

网上有不少相关的帖子,主要的解决方法如下: 
解决方法1(不推荐):

     在IIS将该目录做成应用程序:打开IIS —> 默认Web站点 —> 找到该目录右键打开属性页 —> 目录(或虚拟目录)卡 —> 在下半部分“应用程序设置”处点第一项的“创建”,把该目录做成应用程序。

解决方法2(不推荐):

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

解决方法3: 

在Web.config文件中删除<authentication mode="Windows" />结点就可以了。

要注意的一点是,我们首先要理解这个错误,再视图去消除这个错,其实大部分时候是不应该用第一种和第二种解决方法去消除出错提示的,这个出错提示的出现是因为web.config中的某些节点在一个IIS应用程序中是只能设置一次的,比如<authentication>节,所以大部分时候这个错误是由于多个子目录下存在多个web.config导致的,比较谨慎的解决方法应该是仔细查看出问题目录下的web.config,剔除掉不能重复设置的节点。

 

附:对于DNN用户,任何子目录下被误插入了web.config文件都会导致这个错误,删除误插入了web.config文件即可解决问题。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值