熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

ASP與ASP.NET轉換Session數據橋的應用

2013-11-13 10:02:20  來源: .NET編程 

  背景:

  現有公司的產品OA是采用ASP早先的技術開發需要與目前最新的ASPNET產品進行數據交互的應用現有的ASP應用程序往往采用ASP Sessions這是一種經典的ASP內置模式即允許數據臨時暫存在Web服務器內存中其最大的限制因素就是ASP的session狀態是依賴具體的服務器而另一個更寬范圍的解決方案就是很多Web服務器都可能別用於根據請求而指向的任何網絡服務器實際上就是所有的WEB服務器都像在一個農場中因而任何在內存中的session狀態將不會自動跟隨請求每個ASP服務器提供自己的session狀態除非用戶很湊巧的返回統一服務器造成系統session丟失

  通過使用服務器管理產品(如bigip)來強制用戶會同意服務器內的Web農場來解決內存中ASP Session因服務器關系而造成的問題為了達到這個目的采用一個cookie在客戶端工作在服務器端來使用讓用戶直接可以回到同一個服務器上的每個reqeust這樣可以限制擴展性提高可維護性避免服務器故障的風險(例如session丟失服務器 失敗)

  微軟ASPNET技術的出現終於解決了這個問題可以讓我們來存儲session信息到Web Server和database或者其他域server不錯問題解決了我們還有必要用ASP代碼嗎?全部扔掉?如果這樣做的話就會需要很大代價去重新使用NET來重寫ASP看來還是不可行另一種比較好的解決方案就是用迭代方法來部分移植代碼到新的模型勝過重寫ASP代碼在這個過程中如果舊的ASP代碼和新的ASPNET代碼可以有一個共同的session狀態而保持正常的工作那麼在整個生命周期中將會有益於你更好的規避風險以下提供了幾個解決方案從此略上來解決當采用經典的ASP Session因服務器關系而造成的問題

  用戶自定義組或者使用ASP/ADO腳本去實現直接讀寫用戶session數據到數據庫

  用戶自定義組件去直接訪問ASPNET Session數據

  通過Web Services建立ASP到ASPNET的橋共享session

  在本文中我們將討論最後一種方案其中也會包括一些Web Services與ASP/ADO定制數據庫和ASP Session 池的基本性能數據比較呵呵看完後你自己選擇用哪個

  ASP to ASPNET Bridge / WebService 方案

  此方案中只是簡單的實現了一個從ASP到ASPNET的Web Services橋梁如果你需要用數據庫只需要進行簡單的配置(ngfig和aspState 數據庫)代碼中用來獲得和設置session數據的方法寫在一個Java Scirpt中該文件必須保存在本地ASP程序中

  此Java Script實現MSXMLHTTP功能以便和server端交互並負責將這些cookie回收給用戶工作站

  優點

  支持與服務器無關的webfarm部署提高可擴展性簡單的實現ASP和ASPNET的共同session狀態松耦合以session管理(無連接的HTTP接口 端口可防火牆等)利用久經時間考驗的ASPNET Session實施

  缺點 比ASP Session 內存池實現和數據庫實現會慢

  .NET編程免費提供,內容來源於互聯網,本文歸原作者所有。

Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.