ASP與ASP.net的Session值共用

來源:互聯網
上載者:User

2006-11-26 22:21:38

大中小
問題起因:新系統將要全面用.net平台來開發,前面兩年的工作都是用ASP來開發,如果費除的話,工作量很大,但後續的系統在ASP上實現困難,在以後的安全和升級打包上asp.net比ASP要強大多了,所以決定後面的開發轉.net平台,首先就遇到了一個Session值的問題.因為asp和asp.net完全不同,雖都可以有IIS下執行,asp是面向過程開發,其實都算不上開發,只能算是vbscript,和javascript指令碼語言,session值都是儲存在伺服器記憶體中,所以線上使用者越多,session定義的越多,系統記憶體就占的越大;asp.net完全是採用數所庫儲存的.兩者session值儲存方式完全不同,直接傳值肯定行不通.

解決辦法:在網上找一些資料,問一些.net的老鳥,答案都是不能實現,都說要推翻重新用.net做.周六晚上,想的頭痛了,還是沒有找到方法,我是問題沒有解決,睡覺都會想的.在今天下午終於我在微軟msdn網站上找到瞭解決辦法http://www.microsoft.com/china/MSDN/library/enterprisedevelopment/default.mspx?mfr=true, 要說明的是這裡也有些錯誤的地方,如果的照搬肯定也會現出錯.

上面是原理圖:
程式碼下載
設定步驟 " 建立一個名為 SessionDemoDb 的新資料庫。(庫名可以自己根據項目不動)

" 建立 SessState 表 (osql.exe -E -d SessionDemoDb -i Session.sql)。

" 建立名為 Demo 的新虛擬目錄。

" 關閉 ASP 配置選項卡中的 ASP Session。

" 將 web.config、testPage.aspx、Global.asa、testPage.asp 和 GlobalInclude.asp 複製到虛擬目錄中。

" 更新 Global.asa 和 web.config 中的 DSN 字串設定。會話逾時設定是可選的。預設值為 20 分鐘。?

" 將 SessionUtility.dll 安裝到 Global Assembly Cache (gacutil /i SessionUtility.dll)。

" 利用 regasm.exe 將 SessionUtility.dll 公開為 COM 物件 (regasm.exe SessionUtility.dll /tlb:SessionUtility.tlb)。

" 將 SessionManager.dll 複製到一個本地目錄中,並利用 regsvr32.exe 註冊該檔案 (regsvr32 SessionManager.dll)。

" 為 IUSR_<machine_name> 帳號賦予對 SessionMgr.dll 的讀和執行許可權。

小結

ASP.NET 代表了一種全新的編程典範和結構,並且比傳統的 ASP 具有更多優勢。雖然從 ASP 遷移到 ASP.NET 並不是一個簡單的過程,但 ASP.NET 更好的編程模型和更高的效能使得這種轉換過程物有所值。  

#c#專欄

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.