[原創]應用程序級別之外使用注冊為 allowDefinition='MachineToApplication' 的節是錯誤的


應用程序級別之外使用注冊為 allowDefinition='MachineToApplication' 的節是錯
出現這個錯誤時,在網上差了很多方法,開始還不行,后來終於遇到了一個可以的了,現總結下我查到的所有解決方法:

           一、起因: 當前項目已經存在了一個web.config,也就是說再添加該項目時,就會繼承該web.config,如果你再加的話,就會發生沖突。
解決方法:如果有一個web.cofig沒有用的話可刪除。當然有用的話刪除會引起更多錯誤,看下面別的原因。

         二、起因:要讓一個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>

            四、起因:如果在 IIS 中沒有將虛擬目錄配置為應用程序,則可能導致此錯誤。
    解決方法:建立虛擬目錄(默認網站--右鍵——新建——虛擬目錄)。

          五、起因:web.config 的某些配置節只能出現在網站的虛擬目錄跟目錄中。
    解決方法:把你的虛擬目錄指向web.config所在在文件夾。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM