網站設定與部屬 Webconfig

摘要:網站設定與部屬 Webconfig

1.Webconfig增加值 前端與後端的存取方式

Webconfig

<appSettings>

        <add key="var1" value="25" />    

</appSettings>

 

.aspx

<asp:TextBox ID="TextBox2" text="<%$appSettings:var1 %>" runat="server"></asp:TextBox>

 

.cs

using System.Web.Configuration;

        string s =  WebConfigurationManager.AppSettings["var1"];
        Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('" + s +"')</script>");

2. 如何使得網站呈現離線狀態 兩個方法

(1) <httpRuntime enable="false"/>

(2)在網站根目錄新增一個網頁叫做 app_offline.htm  

     並在裡面擺入你想說的訊息即可,但是這個檔案必須大於512bytes


3. Web.config (用XML形式寫成 大小寫是有影響的)

一個網站可以擁有很多的WebConfig檔案

父目錄的資料會被子資料夾的WebConfig複寫過去


4.Cache

aspx

<%@ OutputCache Duration="5" VaryByParam="*" %>

Duration是暫存秒數  VaryByParam 是必要參數可以設 * 或 none

 

WebConfig

<caching></caching>包住,可用的設定有

(1) disableMemoryCollection: true(預設) / false   是否停用快取記憶體的回收功能

(2) disableExpiration: true/false(預設) 是否快取有保存期限

(3) percentagePhysicalMemoryUsedLimit: 90(預設值為90%) 記憶體的使用量接近設定值則會清除過期或沒再使用的記憶體

 

若要關閉網頁快取則使用

<outputCache enableOutputCache = "false" />

若這設定了,則各別網頁設要快取也不會生效

 

若是想要建立統一個快取,而不用每個網頁都自行在設定一次參數可以使用

    <caching>
      <outputCacheSettings>
        <outputCacheProfiles>
          <add name = "name1" duration="20" varyByParam="*" />
        </outputCacheProfiles>
      </outputCacheSettings>
    </caching>

 

aspx要引用就

<% @OutputCache  CacheProfile="name1"%>


5.compilation

(1)debug: true/false(預設) 是否開啟偵錯模式

(2)explicit : true(預設)/false  表示VB中任何變數都要宣告才能使用


6.globalization

解讀用戶端要求時所用的編碼/送出回應時所用的編碼方式/檔案編碼方式/文化名稱

    <globalization requestEncoding="UTF-8"
                   responseEncoding="UTF-8"
                   fileEncoding="UTF-8"
                   culture="zh-TW"/>

7.pages 對網站中網頁進行共同項目的設定

(1) buffer: true(預設)/false  是否啟用緩衝功能,若為true則會等回復用戶端資訊全部處理完再一次丟過去

(2) CompilationMode: Always(預設)/Auto/Never

             Always:在執行階段回即時編譯網頁

             Never:須配合先行編譯,不然會出現剖析器錯誤

(3)enableSessionState: true(預設)/false  是否啟用SessionState

(4)enableViewState: true(預設)/false 是否啟用ViewState

(5)maintainScrollPositionOnPostBack:true/false(預設)

    當網頁發生POSTBACK時畫面是否會停在相同的位置

(6)viewStateEncryptionMode: Always/Auto(預設)/Nerver

    viewState是否需要加密?


7.urlMappings

(1)實際網址太長太複雜

(2)實際網紙上有參數,因此用簡易網址代替

    <urlMappings>
      <!--前面是新名字 後面是原本網頁的名字-->
      <add url="~/NewSetting1.aspx" mappedUrl="~/Setting1.aspx"/>
    </urlMappings>


網頁的追蹤資訊

Page.Trace.IsEnabled = true;

下面是webconfig用的

<trace> 標籤內

enabled: true/false(預設) 是否啟用追蹤

pageOutput: true/false(預設) 設True表示追蹤資訊會直接顯示在網頁之中

localOnly: True(預設),表示追蹤器只能在伺服器本機電腦上開起,若設為false則遠端電腦也可以看


錯誤的處理程序

產生例外 --> Page_Error() --> Application_Error() [asax] --> Webconfig指定處理方式(ex.導向錯誤頁面)

 

<customErrors>

defaultRedirect = "自訂錯誤訊息網頁的URL"

mode :   Remote(預設) 表示只有從遠端瀏覽時,才會看到自訂錯誤訊息,本機仍是看到asp.net內建的訊息

             on  表示本機跟遠端都使用自訂錯誤訊息網頁

             off   本機跟遠端都會看到詳細的asp.net錯誤訊息網頁

 

<customErrors>下的<error>標籤 可以設定狀態碼要導向哪個網頁

<error statusCode="500"

              redirect="想導的URL"/>