多个project[项目]共享session
生活随笔
收集整理的這篇文章主要介紹了
多个project[项目]共享session
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1. 建立一個空白解決方案blank solution,如:d:\MyProject\MyProject.sln
2. 在d:\MyProject下建一個Web Application的根目錄d:\MyProject\WebMis并設(shè)為http://localhost/WebMis的虛擬目錄
3. 在WebMis目錄下根據(jù)模塊分別新建目錄,如:d:\MyProject\WebMis\Login和d:\MyProject\WebMis\CheckOut
4. 在VS.net中根據(jù)模塊新建web application,如:http://localhost/WebMis/Login和http://localhost/WebMis/CheckOut
5. 新建后Login和CheckOut兩個目錄自動被設(shè)置為虛擬目錄
6. 在WebMis項目中添加Login和CheckOut的項目引用
7.在IIS管理器中刪除Login和CheckOut的虛擬目錄
8. 刪除各項目的global.asax(除根項目)
9. 除去個項目的web.config(除根項目)中的如下代碼:
<authentication mode="Windows" />
<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="20" />
或刪掉web.config(若不需要在各目錄中進(jìn)行配置)
10. 編譯后,即可運(yùn)行。
同一個站點(diǎn),不同虛擬目錄下的Web應(yīng)用程序不能共享Session。而VS.net 默認(rèn)創(chuàng)建的 Web 工程是一個工程一個虛擬目錄,一個工程使用一套自己的Web.config和Global.asax文件,這樣我們在開發(fā)一個站點(diǎn)的多個關(guān)聯(lián)項目(通過Session共享資源)的時候,就會遇到麻煩。
解決這個問題并不難,把這些工程合并到一個虛擬目錄下,至于Web.config和Global.asax,雖然一個工程可以配置一個,但是推薦還是整個web站點(diǎn)用一套配置,而且不同目錄下的Web.config影響不同的目錄下aspx的配置,如果根目錄下和一個WEB應(yīng)用程序目錄下都有Web.config文件,而且都定義了,sessionState mode="InProc" 顯然這兩個應(yīng)用的Session不可能共享了。
具體來說,滿足以下條件,可以實(shí)現(xiàn)同一站點(diǎn)Session共享。
1、需要共享Session的站點(diǎn)去處虛擬目錄設(shè)置,如下:
(,刪除應(yīng)用程序的虛擬目錄,注意是點(diǎn)擊刪除按鈕,不是卸載按鈕,把自己的應(yīng)用程序目錄文件刪除了我可不負(fù)責(zé))
2、保證整個站點(diǎn)有個Web應(yīng)用程序必備的東西,比如Web.config和Global.asax。 這里的設(shè)置是要對整個站點(diǎn)負(fù)責(zé)的。簡單的方法可以在站點(diǎn)的根目錄創(chuàng)建一個Web應(yīng)用。
3、刪除各個需要通用Session站點(diǎn)目錄下Web.config和Global.asax文件中影響該應(yīng)用程序的設(shè)置,比如下面框中是羅里的Web.config中應(yīng)該刪除的。
滿足以上條件就可以通用Session了。
簡單演示,實(shí)現(xiàn)webapp1 和 webapp2 Session互訪:
前提條件:
有兩個Web 應(yīng)用 WebApp1,WebApp2在同一個站點(diǎn)。我們要演示的是 WebApp1應(yīng)用中寫一個Session值,比如Session["data1"]="data1"; 然后在WebApp2中讀取出這個Session值。
1、把兩個Web工程包含在同一個解決方案中,比如:Solution3;(這個不用我圖片演示了把,新建一個空白解決方案,然后把存在的兩個Web工程加入這個解決方案)
2、新建一個Web工程ShareNow1,這個工程是整個站點(diǎn)的Web工程,不用包含這個站點(diǎn)下的幾個Web工程,如果從解決方案瀏覽器下看如下
3、去除WebApp1和 WebApp2的虛擬目錄配置。
4、WebApp1和 WebApp2兩個Web工程的Web.Config文件中刪除一些設(shè)置,刪除那些看上面提到的框。(為了減少麻煩,最簡單的方法是直接刪除Web.Config和Global.asax 兩個文件。這樣以后程序啟動就調(diào)用它上級的這兩個配置文件,也就是這個ShareNow1? web應(yīng)用的這兩個文件)
5、在ShareNow1 web工程中增加對 WebApp1 WebApp2 兩個Web工程的引用,注意:是工程引用,不是其他引用
( 這三個Web工程是在同一個解決方案里面,這樣才可以實(shí)現(xiàn) 工程引用),圖2也可以看到把這兩個工程引用到ShareNow1工程了。
6、生成解決方案;
7、在webapp1中WebForm1.aspx設(shè)定Session[“data1”]并顯示;
在webapp2中WebForm2.aspx顯示由webapp1中WebForm1.aspx接受的Session[“data1”]的值。
2. 在d:\MyProject下建一個Web Application的根目錄d:\MyProject\WebMis并設(shè)為http://localhost/WebMis的虛擬目錄
3. 在WebMis目錄下根據(jù)模塊分別新建目錄,如:d:\MyProject\WebMis\Login和d:\MyProject\WebMis\CheckOut
4. 在VS.net中根據(jù)模塊新建web application,如:http://localhost/WebMis/Login和http://localhost/WebMis/CheckOut
5. 新建后Login和CheckOut兩個目錄自動被設(shè)置為虛擬目錄
6. 在WebMis項目中添加Login和CheckOut的項目引用
7.在IIS管理器中刪除Login和CheckOut的虛擬目錄
8. 刪除各項目的global.asax(除根項目)
9. 除去個項目的web.config(除根項目)中的如下代碼:
<authentication mode="Windows" />
<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="20" />
或刪掉web.config(若不需要在各目錄中進(jìn)行配置)
10. 編譯后,即可運(yùn)行。
同一個站點(diǎn),不同虛擬目錄下的Web應(yīng)用程序不能共享Session。而VS.net 默認(rèn)創(chuàng)建的 Web 工程是一個工程一個虛擬目錄,一個工程使用一套自己的Web.config和Global.asax文件,這樣我們在開發(fā)一個站點(diǎn)的多個關(guān)聯(lián)項目(通過Session共享資源)的時候,就會遇到麻煩。
解決這個問題并不難,把這些工程合并到一個虛擬目錄下,至于Web.config和Global.asax,雖然一個工程可以配置一個,但是推薦還是整個web站點(diǎn)用一套配置,而且不同目錄下的Web.config影響不同的目錄下aspx的配置,如果根目錄下和一個WEB應(yīng)用程序目錄下都有Web.config文件,而且都定義了,sessionState mode="InProc" 顯然這兩個應(yīng)用的Session不可能共享了。
具體來說,滿足以下條件,可以實(shí)現(xiàn)同一站點(diǎn)Session共享。
1、需要共享Session的站點(diǎn)去處虛擬目錄設(shè)置,如下:
(,刪除應(yīng)用程序的虛擬目錄,注意是點(diǎn)擊刪除按鈕,不是卸載按鈕,把自己的應(yīng)用程序目錄文件刪除了我可不負(fù)責(zé))
2、保證整個站點(diǎn)有個Web應(yīng)用程序必備的東西,比如Web.config和Global.asax。 這里的設(shè)置是要對整個站點(diǎn)負(fù)責(zé)的。簡單的方法可以在站點(diǎn)的根目錄創(chuàng)建一個Web應(yīng)用。
3、刪除各個需要通用Session站點(diǎn)目錄下Web.config和Global.asax文件中影響該應(yīng)用程序的設(shè)置,比如下面框中是羅里的Web.config中應(yīng)該刪除的。
滿足以上條件就可以通用Session了。
簡單演示,實(shí)現(xiàn)webapp1 和 webapp2 Session互訪:
前提條件:
有兩個Web 應(yīng)用 WebApp1,WebApp2在同一個站點(diǎn)。我們要演示的是 WebApp1應(yīng)用中寫一個Session值,比如Session["data1"]="data1"; 然后在WebApp2中讀取出這個Session值。
1、把兩個Web工程包含在同一個解決方案中,比如:Solution3;(這個不用我圖片演示了把,新建一個空白解決方案,然后把存在的兩個Web工程加入這個解決方案)
2、新建一個Web工程ShareNow1,這個工程是整個站點(diǎn)的Web工程,不用包含這個站點(diǎn)下的幾個Web工程,如果從解決方案瀏覽器下看如下
3、去除WebApp1和 WebApp2的虛擬目錄配置。
4、WebApp1和 WebApp2兩個Web工程的Web.Config文件中刪除一些設(shè)置,刪除那些看上面提到的框。(為了減少麻煩,最簡單的方法是直接刪除Web.Config和Global.asax 兩個文件。這樣以后程序啟動就調(diào)用它上級的這兩個配置文件,也就是這個ShareNow1? web應(yīng)用的這兩個文件)
5、在ShareNow1 web工程中增加對 WebApp1 WebApp2 兩個Web工程的引用,注意:是工程引用,不是其他引用
( 這三個Web工程是在同一個解決方案里面,這樣才可以實(shí)現(xiàn) 工程引用),圖2也可以看到把這兩個工程引用到ShareNow1工程了。
6、生成解決方案;
7、在webapp1中WebForm1.aspx設(shè)定Session[“data1”]并顯示;
在webapp2中WebForm2.aspx顯示由webapp1中WebForm1.aspx接受的Session[“data1”]的值。
轉(zhuǎn)載于:https://www.cnblogs.com/flyfesh/archive/2009/06/15/1503450.html
總結(jié)
以上是生活随笔為你收集整理的多个project[项目]共享session的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 线程不能被子进程继承
- 下一篇: QQ号码采集及邮件发送系统2009