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

转自:http://hi.baidu.com/lqs0112/item/5ac83b846d1903ddd0f8cd2f

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

根据从网上看到的解决方法,已经解决的该问题。因为这个问题好像比较常见,就把它贴出来,大家可以了解一下。

解决方法如下:

选中 你要发布的虚拟目录 --〉右键单击--〉属性--〉应用程序名--〉创建    就ok了

      若还不行把C:\WINDOWS\Microsoft.NET\work\v2.0.50727\CONFIG\machine.config中的所有allowDefinition="MachineToApplication"改为allowDefinition="Everywhere"解决的关键是:把你的虚拟目录指向web.config所在在文件夹,因为 web.config 的某些配置节只能出现在网站的虚拟目录跟目录中。.net 下用使用IIS建立虚拟目录是跟ASP下不同的,一定要指向文件夹的的跟目录.

 ===============================================================

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

2007-07-11 11:23:20|  分类: c# |  标签: |字号 订阅

起因:要让一个web程序的根目录下的文件可以自由访问,admin目录下的文件只有通过验证后的用户才能访问。

用VS2005+asp.net2.0调试时,在根目录下的一个子目录(即:admin) 的web.config文件里配置了


       
      
     

运行时发生错误:

错误 21 在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误。 E:\Program Files\vs2005project\webapp1\admin\Web.config 12

原因:Machine.config里的allowDefinition="MachineToApplication"。

解决1:把allowDefinition设为:Everywhere。考虑到最好不要改动Machine.config文件,否则可能会引起其他错误。

解决2: 是应用级别的,不能在子目录级别的web.config内
设置,把它放在应用级别的web.config里,在子目录下用节来控制访问。

即:
              
                   
              

       

根目录下的web.config:


       
      
     

     

       
     

 

================================================================

你可能感兴趣的:(ASP.NET)