gpt4 book ai didi

c# - 有什么方法可以在不丢失 session 状态的情况下修改 ASP.NET 应用程序中的 App_Code?

转载 作者:太空宇宙 更新时间:2023-11-03 13:05:30 25 4
gpt4 key购买 nike

我们有一个经常更新的 ASP Web 表单站点。

但是,每当我们修改存储在 App_Code 文件夹中的任何类时,这都会导致应用程序池回收并丢失我们所有的 session 状态,从而导致我们的用户注销。

这意味着我们需要在凌晨 2:00 左右更改应用代码,以尽量减少对用户的影响。

现在,由于我重视 sleep ,所以我想知道是否有解决此问题的方法?

我已经尝试将应用程序切换为对 session 状态使用 StateServer 模式。

只要正在更改的类当前未被使用,这似乎就可以工作。但是,如果该类正在使用中,则会导致每个主体 session 丢失。

在这种情况下,对于使用频繁的网站,最佳做法是什么?

每当我们需要修复类(class)中的错误时,我是否注定要熬夜?

提前感谢您的任何回复...

最佳答案

除了 mode="StateServer"之外,您还需要 sessionState 设置 cookieless="false"。

此外,您需要一个固定的机器 key ,因此回收不会生成新的机器 key ,而是使用相同的 key 。如果生成新 key ,则所有以前的 sessionId 都无法解密,因此到 sessionState 的链接将丢失。

检查 https://technet.microsoft.com/en-us/library/cc755177(WS.10).aspx了解如何配置/生成机器 key 。

这是来自 msdn 的示例,所以不要在生产中使用它,而是生成您自己的 key :

<machineKey 
validationKey="32E35872597989D14CC1D5D9F5B1E94238D0EE32CF10AA2D2059533DF6035F4F"
decryptionKey="B179091DBB2389B996A526DE8BCD7ACFDBCAB04EF1D085481C61496F693DF5F4"
/>

最后,如果您想在机器级别设置相同的 key ,您需要在 Web.config 或 Machine.config 中使用类似的东西。

关于c# - 有什么方法可以在不丢失 session 状态的情况下修改 ASP.NET 应用程序中的 App_Code?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30913980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com