14
我們目前正在部署代碼以保持非常正常的生活,但不利的一面是破壞用戶會話數據。是否有可能在不丟失用戶會話的情況下回收IIS應用程序池?
是否有一種方法可以在不丟失會話數據的情況下回收IIS,或者是在SQL Server中持久化會話狀態還是隻有這樣一種方式?
我們目前正在部署代碼以保持非常正常的生活,但不利的一面是破壞用戶會話數據。是否有可能在不丟失用戶會話的情況下回收IIS應用程序池?
是否有一種方法可以在不丟失會話數據的情況下回收IIS,或者是在SQL Server中持久化會話狀態還是隻有這樣一種方式?
內存中會話狀態存儲在IIS輔助進程的內存中。當您重新啓動應用程序池時,您正在有效地停止並重新啓動工作進程,因此工作進程保留的任何狀態(包括所有會話對象)都將丟失。 所以,是的,您需要將IIS會話數據存儲在IIS工作進程之外,例如SQL,以便「銷燬」用戶的會話數據。
小記,當您回收應用程序池時,您將啓動新的w3wp進程,併爲新的請求提供服務。舊的進程保留在內存中,直到所有舊請求未完成或未配置時間量(設置名稱爲'關閉時間限制',默認值90秒)。 – 2016-12-08 14:58:01