2012-02-21 74 views
3

我怎麼能強迫我global.asaxSession_Start方法被調用每次我的應用程序開發模式下運行的時間?力在session_start

我有一些代碼,我需要調試,但有時它是所謂的,有時則不然。 我已經嘗試關閉「ASP.NET開發服務器」,但沒有運氣。針對用戶的新的會話開始,只有當

+0

並不完美,但有用:進入web.config文件,使無效果的變化(放的標籤一些空白外),並保存它。解釋在https://stackoverflow.com/a/41240646/1830909 – QMaster 2017-11-24 18:02:15

回答

2

我設法通過重新啓動「ASP.NET狀態服務」,這是用來在電腦上管理會話狀態的服務做到這一點。

不是理想的解決方案,但解決了我的問題。

+1

最簡單的方法來做到這一點是從開始菜單中的命令/搜索框運行iisreset(可能需要以管理員身份運行 - 我不知道) – dice 2012-02-21 16:27:46

+0

我不這麼認爲,我正在調試我的本地計算機上的應用程序, t認爲它使用IIS,它使用ASP.NET開發服務器 – Diego 2012-02-21 16:33:41

4

看看這篇文章http://sandblogaspnet.blogspot.com/2008/03/methods-in-globalasax.html

會話啓動事件。一旦用戶的「Session_Start」被激發,那麼如果用戶嚮應用程序內的任何資源發出後續請求,則該事件完全不會被觸發。只有在用戶會話過期並且用戶嘗試再次訪問應用程序中的任何資源時纔會觸發該事件。

你確定你是不是在找的Application_Start?如果沒有,那麼只要你重置該事件應該被調用的會話。

編輯:還檢查了這篇文章的人誰試圖做同樣的事情,你http://forums.asp.net/t/1608241.aspx/1

在這個頁面:

你是對的,我只是測試它將<sessionState timeout="1"/>放入我的Web.config文件中。 然後我等了1分鐘,然後點擊頁面上的鏈接。它 立即回到Session_Start並重新驗證了 用戶。

編輯2:嘗試從你的起始頁調用Session.Abandon()。它應該刪除會話並要求用戶啓動一個新的會話。

+1

我想象的是OP正試圖在應用程序內測試'Session_Start'邏輯,並且希望每次調試會話開始時都強制它運行。 – Yuck 2012-02-21 15:40:08

+0

嗨! 是的,Session_Start中的代碼在我發現問題之前並不想從中刪除。所以,改變我的問題,我該如何模擬一個新的會話或到期目前的? – Diego 2012-02-21 15:42:23

+0

編輯顯示如何做到這一點。在web.config中設置然後等待一分鐘,然後刷新並且它應該被觸發。 – Gage 2012-02-21 15:42:41

0

它可以是一個痛苦的對接,但在重新啓動ASP.net開發服務器和關閉並重新打開瀏覽器應該重置會議的組合。