天天看點

asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)

利用配置檔案的配置節可以讓它不繼承父目錄的配置檔案,如下

<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 指是否被子級應用程式繼承

一、應用身份驗證、但個别目錄或檔案不需要身份驗證

最常見的是一個網站的背景需要驗證,而前台是不需要的;一般登入頁面會有驗證碼、而生成驗證碼那個頁面是不需要驗證的、否則驗證圖檔是顯示不出來的。

解決方法:

asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)
asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)

      <!-- 身份驗證 -->

asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)

      <authentication mode="Forms">

asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)

        <forms name=".myForm" loginUrl="login.aspx" timeout="20" protection ="All"/>

asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)

      </authentication>

asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)

      <authorization >

asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)

        <deny users ="?"/>

asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)

      </authorization>

asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)

    </system.web>

asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)

  <!-- 驗證碼 -->

asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)

  <location path ="CheckCode.aspx">

asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)

    <system.web >

asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)
asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)

        <allow users ="*"/>

asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)
asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)
asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)

  </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項目用到了主題

asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)

<pages enableEventValidation="false" validateRequest="false" theme="default">

B項目不用

asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)

<pages enableEventValidation="false" validateRequest="false" theme="">

讓B的主題為空、否則B運作時提示找不到default主題目;

A的設定

asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)
asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)

          <add name="SiteCache" type="SiteCache"/>

asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)

        </httpModules>

B的設定(不用的項,清除)

asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)
asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)

     <clear/>

asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)

如果A.B都用到

asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)

<appSettings>

asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)

  <add key="app" value="

asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)

" />

asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)

</appSettings>

B運作時會提示app已經加載,此時可以

asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)
asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)

  <remove name="app" />

asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)

  <add key="app" value="" />

asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)

或者:

asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)
asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)

  <clear />

asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)
asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)

三、禁止web.config重寫

同上面的例子、如果B中的config設定必須與A中的相同,不能重寫,則A的config設定

asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)

    <location path="B" allowOverride="false">

asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)

      <system.web>

asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)

        <httpModules>

asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)
asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)
asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)

      </system.web>

asp.net 如何讓虛拟目錄裡面的webconfig不繼承主目錄config(轉)

此時B的config中<httpModules>設定不能改寫,須和A的設定相同。

http://www.yaosansi.com/post/1283.html

引入

部落格園大道至簡

http://www.cnblogs.com/jams742003/

轉載請注明:部落格園

繼續閱讀