ASP.NET的 Session 詳解2

來源:互聯網
上載者:User

 Web.config 有兩種,分別是伺服器設定檔和Web應用程式設定檔,他們都名為Web.config。在這個設定檔中會儲存當前IIS伺服器中網頁的使用哪種語言編寫的、應用程式安全認證模式、Session資訊儲存方式的一系列資訊。這些資訊是使用XML文法儲存的,如果想對其編輯,使用文字編輯器就行了。
  
  
  
  其中伺服器設定檔會對IIS伺服器下所有的網站中的所有應用程式起作用。在.NET Framework 1.0中,伺服器的Web.config檔案是存在:\WinNT\Microsoft.NET\Framework\v1.0.3705中的。
  
  而Web 應用程式設定檔Web.config則儲存在各個Web應用程式中。例如:當前網站的根目錄\Inetpub\wwwroot,而當前的Web應用程式為MyApplication,則Web應用程式根目錄就應為:\Inetpub\wwwroot\MyApplication。如果你的網站有且只有一個Web應用程式,一般說來應用程式的根目錄就是\Inetpub\wwwroot。如果想添加一個Web應用程式,在IIS中添加一個具有應用程式起始點的虛擬目錄就行了。這個目錄下的檔案及目錄將被視為一個Web應用程式。但是,這樣通過IIS添加Web應用程式是不會為你產生Web.config檔案的。如果想建立一個帶有Web.config檔案的Web應用程式,需要使用Visual Studio.NET,建立一個Web應用程式項目。
  
  
  
  Web應用程式的設定檔Web.config是可選的,可有可無。如果沒有,每個Web應用程式會使用伺服器的Web.config設定檔。如果有,則會覆蓋伺服器Web.config設定檔中相應的值。
  
  
  
  在ASP.NET中,Web.config修改儲存後會自動立刻成效,不用再像ASP中的設定檔修改後需要重新啟動Web應用程式才會生效了。
  
  
  
  Web.config檔案中的Session配置資訊
  
  開啟某個應用程式的設定檔Web.config後,我們會發現以下這段:
  
  
  
  <sessionState
  
  mode="InProc"
  
  stateConnectionString="tcpip=127.0.0.1:42424"
  
  sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
  
  cookieless="false"
  
  timeout="20"
  
  />
  
  這一段就是配置應用程式是如何儲存Session資訊的了。我們以下的各種操作主要是針對這一段配置展開。讓我們先看看這一段配置中所包含的內容的意思。sessionState節點的文法是這樣的:
  
  
  
  <sessionState mode="Off|InProc|StateServer|SQLServer"
  
  cookieless="true|false"
  
  timeout="number of minutes"
  
  stateConnectionString="tcpip=server:port"
  
  sqlConnectionString="sql connection string"
  
  stateNetworkTimeout="number of seconds"
  
  />
  
  
  
  
  
  必須有的屬性是
  
  屬性 選項 描述
  
  mode 設定將Session資訊儲存到哪裡
  
  Off 設定為不使用Session功能
  
  InProc 設定為將Session儲存在進程內,就是ASP中的儲存方式,這是預設值。
  
  StateServer 設定為將Session儲存在獨立的狀態服務中。
  
  SQLServer 設定將Session儲存在SQL Server中。
  
  
  
  可選的屬性是:
  
  
  
  屬性 選項 描述
  
  cookieless 設定用戶端的Session資訊儲存到哪裡
  
  ture 使用Cookieless模式
  
  false 使用Cookie模式,這是預設值。
  
  timeout 設定經過多少分鐘後伺服器自動放棄Session資訊。預設為20分鐘
  
  stateConnectionString 設定將Session資訊儲存在狀態服務中時使用的伺服器名稱和連接埠號碼,例如:"tcpip=127.0.0.1:42424”。當mode的值是StateServer是,這個屬性是必需的。
  
  sqlConnectionString 設定與SQL Server串連時的連接字串。例如"data source=localhost;Integrated Security=SSPI;Initial Catalog=northwind"。當mode的值是SQLServer時,這個屬性是必需的。
  
  stateNetworkTimeout 設定當使用StateServer模式儲存Session狀態時,經過多少秒空閑後,斷開Web伺服器與儲存狀態資訊的伺服器的TCP/IP串連的。預設值是10秒鐘。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.