Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
当我在我的 C# ASP.Net 应用程序中更新 .dll 时,会优雅地处理转换,并且允许用户在代码切换到新代码之前完成他们的请求。
我的问题是静态变量在完成后是否会重置,或者它们是否会在更新过程中持续存在(当然,如果静态对象本身没有在代码中更新)?
是的,它们丢失并重新创建,DLL 强制应用程序域停止并重新启动。所有缓存和其他项目都会根据使用/需要重新填充和创建。
如果这些值要保留任何实际时间量,您必须查看持久存储,因为您的 AppDomain 可以并且确实由于许多其他原因而重新启动。
是的,应用程序已重新启动。如果您需要保留这些值,您可能需要查看某种进程外缓存模型,例如进程外缓存、SQL Server 状态管理或位于应用程序之外的第三方缓存解决方案领域。