利用配置檔案的配置節可以讓它不繼承父目錄的配置檔案,如下
<location path="." allowOverride="false" inheritInChildApplications="false"> </location>
把它加在父目錄的<system.web>節外面即可,測試一下果然如此,甚喜,雖記之以備忘,同時也于大夥共享!
下面是更好的一個:
虛拟目錄中的web.config繼承了主目錄中的web.config出現問題是由于根目錄中的web.config添加了httphandler、 httpmodule 引起的。
解決辦法:将 httphandler httpmodule的聲明添加到location中。
如下所示:
<location path="." allowOverride="true" inheritInChildApplications="false">
<system.web>
<httpModules>
<add name="UrlRewriteModule"
type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter" />
</httpModules>
</system.web>
</location>
path 不用說指定的是一個目錄
allowOverride 指是否可以将這個重寫
inheritInChildApplications 指是否被子級應用程式繼承
一、應用身份驗證、但個别目錄或檔案不需要身份驗證
最常見的是一個網站的背景需要驗證,而前台是不需要的;一般登入頁面會有驗證碼、而生成驗證碼那個頁面是不需要驗證的、否則驗證圖檔是顯示不出來的。
解決方法:
<!-- 身份驗證 -->
<authentication mode="Forms">
<forms name=".myForm" loginUrl="login.aspx" timeout="20" protection ="All"/>
</authentication>
<authorization >
<deny users ="?"/>
</authorization>
</system.web>
<!-- 驗證碼 -->
<location path ="CheckCode.aspx">
<system.web >
<allow users ="*"/>
</location>
使用身份驗證、禁止匿名使用者通路,同時對頁面checkcode.aspx允許所有使用者通路、即不用驗證。
二、改寫(不需求)web.config繼承
假設IIS中有個站點A、而A站點下面有個虛拟目錄B、此時可以輸入:"ttp://ip址/" 通路到A站點,輸入http://ip位址/B 通路到B網站;而B項目中的web.config首先會繼承A站點的web.config,如果A的config有很多設定如<httpModules>,<page>等,而B項目的config沒有這些設定,項目也沒用到這些設定,但B的程式在運作時确會出錯、原因就是它繼承A的config;這個讓人有點讨厭“我壓根沒用它、怎麼會有錯?且提示出錯的那個檔案是A的config”,可以這樣解決:
A項目用到了主題
<pages enableEventValidation="false" validateRequest="false" theme="default">
B項目不用
<pages enableEventValidation="false" validateRequest="false" theme="">
讓B的主題為空、否則B運作時提示找不到default主題目;
A的設定
<add name="SiteCache" type="SiteCache"/>
</httpModules>
B的設定(不用的項,清除)
<clear/>
如果A.B都用到
<appSettings>
<add key="app" value="
" />
</appSettings>
B運作時會提示app已經加載,此時可以
<remove name="app" />
<add key="app" value="" />
或者:
<clear />
三、禁止web.config重寫
同上面的例子、如果B中的config設定必須與A中的相同,不能重寫,則A的config設定
<location path="B" allowOverride="false">
<system.web>
<httpModules>
</system.web>
此時B的config中<httpModules>設定不能改寫,須和A的設定相同。
從
http://www.yaosansi.com/post/1283.html引入
部落格園大道至簡
http://www.cnblogs.com/jams742003/轉載請注明:部落格園