2011-05-20 63 views
3

有沒有辦法從IIS7內限制asp.net(進程內)會話的數量?我正在考慮現有的設置,允許這個經典的ASP。基本上我們希望能夠限制服務器上併發會話的數量,並且一旦達到其他流量重定向到「我們很忙」類型的頁面。在以前的系統(傳統的asp)中,我們通過將503響應重定向到一個保存頁面來完成此操作。在IIS7中限制asp.net會話

我意識到這可能會從asp.net代碼內完成,但監視會話開始&結束並不理想。是否有可能限制會話的IIS擴展,或者可以使用任何Perfmon計數器的靈活擴展?

非常感謝。

回答

1

通過配置任何會話狀態配置設置,沒有辦法做到這一點。

你可以寫你自己的供應商做到這一點:

Implementing a Session-State Store Provider
Sample Session-State Store Provider

的示例使用SQL,但你可以修改創建自己的內存存儲。

會話狀態提供者級別的限制會話可能不是解決此問題的最佳方法。您將遇到的問題是當您的網站已經超出了可用會話的數量時,但您的訪問者數量下降。由於會話狀態超時,會有未使用的會話狀態實例,並且在這些會話超時之前,您不能再接受更多訪問者。如果您的超時設置爲默認值(20分鐘),20或30個用戶「消失」,那麼在您接受新會話之前需要等待20分鐘。