2012-09-10 79 views
1

對不起,由於我工作的代理機構的工作人員已經繼承了使用ASP.net構建在Windows服務器上的網站。自動刷新IIS服務器上的緩存

我們遇到了用戶登錄系統的問題。基本的故事是​​當用戶請求一個管理員必須批准的帳戶時。如果管理員拒絕用戶應用程序,用戶仍然可以使用忘記的密碼選項登錄。

我最初的反應是代碼中的邏輯錯誤,但我們已經讓一些ASP人員快速瀏覽並無法重現問題。正因爲如此,他們暗示它可能是某種緩存問題。如果是的話,無論如何設置服務器重置它的緩存每小時左右?或任何其他建議,也是受歡迎的。對不起,我完全缺乏代碼示例,但現在我只能提供一個場景。

乾杯。

回答

3

如果你不能重現它,那麼沒有問題;儘管我承認可能存在緩存問題。但是,如果不瞭解更多關於應用程序的知識,我建議您只需grep源代碼即可參考System.Web.Caching.Cache課程(如果不是HttpContext.Current,則通常直接通過Page課程進行訪問)。

刪除緩存負責的想法,我認爲這只是一個忘記密碼功能的錯誤編碼的情況。我想是忘記密碼功能重置某種「帳戶禁用」標誌,這就是允許用戶進入。

+0

別忘了System.Runtime.Caching! - 最近纔出現,但如果你建議進行文本搜索,他可能應該同時尋找兩者。 – StingyJack

1

ASP.Net caching class有緩存項目的迭代器和刪除項目的方法。在IIS中託管長時間運行的進程很困難 - 因爲「空閒」工作進程會被終止 - 因此您不能只運行一個計時器。但是,您可以使用IIS auto-start功能與持久存儲相結合,每小時運行一次「nuke cache」方法。有了這個說法,我看不出這是如何明智地解決這個問題 - 我希望這裏的計劃只是爲了幫助隔離真正的問題。