回答
儘管如此,使ASP和ASP.NET共存不費吹灰之力微軟盡了最大努力,一個區域仍然是一個絆腳石......會話狀態。幸運的是,ASP.NET升級會話狀態管理的優勢遠遠超過了不能將「Classic」會話信息傳遞給.NET的不便。不幸的是沒有簡單的解決方案;我能提供的最多是一個易於實施的解決方法。
爲了找到合適的解決方案,我遇到了兩個值得一提的好選擇。第一個涉及將會話信息解析到「經典」中間頁面上的隱藏表單字段,然後將頁面提交到將表單字段加載到會話狀態的.NET中間頁面。這是一個很好的簡單解決方案,但它不能同時工作。在.NET中,您無法指定您提交給的頁面。每個頁面都必須自行回發。
第二個選項可能更接近實際解決方案而不是解決方法。微軟的Billy Yuen開發了一個有效的解決方案。代碼優雅,集成看起來是無縫的,但我無法在我的系統上工作(記得我說沒有簡單的解決方案,並不是沒有解決方案)。如果這個解決方案適合你,太棒了!你不需要我的代碼,你會很高興地將會話信息從「Classic」傳遞給.NET,就像它正在流行一樣,謝謝你停下來。
好的,如果您仍在閱讀,請簡單介紹一下我創建的解決方法。它需要一個數據庫,但是哪種類型的數據庫並不重要(儘管代碼是爲SQL Server編寫的)。當一個頁面(源頁面)想要重定向到使用不同版本的ASP的另一個頁面(目標頁面)時,它會調用一箇中間頁面。源中間頁面使用每個會話變量並將其與全局唯一ID(GUID)一起添加到數據庫。由於「Classic」和.NET使用不同的SessionID格式,因此不可能使用SessionID,因此使用GUID。源中間頁然後通過Querystring變量將GUID傳遞到目標中間頁。目標中間頁面從數據庫檢索會話信息,自行清理,然後重定向到目標頁面。它與第一種解決方法類似,但支持在兩個方向上傳輸狀態。 代碼使用 安裝
- 將舉行臨時會議信息的數據庫上運行的「ASPSessionState.sql」的SQL查詢。
- 將.asp和.aspx。*(SessionTransfer.aspx和SessionTransfer.aspx.cs)文件複製到您網站上的文件夾中。
- 更新「SessionTransfer.asp」和「SessionTransfer.aspx.cs」文件中的連接對象信息。它位於每個文件的三個位置(抱歉關於未合併連接信息)。
- 編譯aspx文件。
- .asp和.aspx。*文件必須全部位於相同的文件夾才能工作。
用法
對於一個超鏈接(定位標記)的使用或一個響應。重定向,設置的目標網址爲以下之一:
從ASP 「經典」 頁:
SessionTransfer.asp?dir=2aspx&url=<asp_dotnet_url>
從ASP.NET頁:
SessionTransfer.aspx?dir=2asp&url=<asp_classic_url>
代碼將轉移會話信息並將用戶重定向到由or指定的url。 下載
您可以從here下載代碼:session_transfer.zip(4.6 KB)。
可以看看NSession它允許使用狀態服務器在Classic ASP和ASP.Net之間共享會話狀態。很容易設置只是配置應用程序使用狀態服務器的會話和註冊幾個DLL文件。
- 1. WCF和ASP.NET會話共享
- 2. ASP.net會話默認共享?
- 3. 有Coldfusion和asp.net共享會話變量
- 4. 共享會話
- 5. 共享會話
- 6. Flash和php會話共享?
- 7. 共享方法在ASP.NET會話
- 8. 共享會話(Asp-的> asp.net)安全
- 9. BrowserSync共享會話
- 10. PHP會話共享
- 11. 共享JVM會話
- 12. 使用WCF會話共享ASP.NET會話狀態
- 13. 應用程序和共享會話之間的共享DLL
- 14. 如何在http和https之間共享一個asp.net會話
- 15. 在ASP.NET和PHP之間共享會話數據
- 16. 在asp.net和java之間共享會話變量
- 17. 在asp.net和vb6之間共享會話變量
- 18. 在WCF和Silverlight Http客戶端之間共享ASP.NET會話ID
- 19. 如何在PHP和ASP.net應用程序之間共享會話?
- 20. 具有SSL和共享會話的Haproxy
- 21. 在Ruby和PHP之間共享會話
- 22. Rails和Sinatra共享會話不工作
- 23. Symfony2和ClankBundle:不能共享會話
- 24. 的Node.js和PHP會話共享
- 25. Java EE 6併發會話和共享
- 26. 與StateStitch和AppFabric共享會話
- 27. 在php和jsp之間共享會話
- 28. PHP和Node.js的共享會話標識
- 29. php子域會話共享
- 30. JaxWSProxyFactoryBean共享HTTP會話
在我們的一個應用程序中,我們使用網址中的querystrings將asp.net會話數據傳遞給經典的asp會話數據。這不是很好,但保存了我們的重寫。 – adrianos 2009-11-18 08:33:12
你能解釋更多嗎? TY。 – 2009-11-18 12:57:31