IIS自动回收,为什么静态变量里的项被清掉了

huaxialonger 2011-10-20 05:15:25
我在网站后台使用静态变量保存一些常用的值
Public Class dRegSms


Public Shared RouteHm As New Hashtable(100)

’其他赋值方法
End Class

发布到IIS上以后,每次IIS自动进行回收,开始认为会把所有静态变量也回收掉的,后来跟踪了些时间,发现RouteHm 不为空,但他的Count的值为0,也就是说里面存的数据没有了。。。
这是什么情况啊?有没有什么办法让里面的object保留住啊?
...全文
662 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
孟子E章 2011-10-25
  • 打赏
  • 举报
回复
对的回收工作进程触发application_start
另外,asp.net网站默认一段时间没人服务,也会导致触发application_start的
huaxialonger 2011-10-25
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 net_lover 的回复:]
你要搞清楚,回收的感念是什么啊
iis里面的回收和。net的垃圾回收不是一个概念
[/Quote]
想问下,IIS里面,回收工作进程和停止工作进程后,再次访问都会触发application_start吧
孟子E章 2011-10-25
  • 打赏
  • 举报
回复
你要搞清楚,回收的感念是什么啊
iis里面的回收和。net的垃圾回收不是一个概念
黄亮 2011-10-25
  • 打赏
  • 举报
回复
程序被重启了。你要有保护机制的,先判断是否为空,如果为空就从数据库中取。还有建议用cache可以设置依赖。数据被外部系统更新后能够知道
huaxialonger 2011-10-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 lextm 的回复:]
IIS关闭空闲工作进程,或者应用程序池回收老工作进程的时候,进程都会被关闭,你那些静态的东西自然就还原到初始状态了。不是没人遇到,而是你太大惊小怪了。

要保留住,那么你需要自己持久化,或者使用可持久化的会话来保存。使用会话放太多数据的话开销很大,不如自己持久化到磁盘。
[/Quote]
谢谢啊,让我明白些东西,我去看看那些持久化的东西
huaxialonger 2011-10-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 pengwei0417 的回复:]
帮顶。
[/Quote]
先谢一下,呵呵
lextm 2011-10-21
  • 打赏
  • 举报
回复
IIS关闭空闲工作进程,或者应用程序池回收老工作进程的时候,进程都会被关闭,你那些静态的东西自然就还原到初始状态了。不是没人遇到,而是你太大惊小怪了。

要保留住,那么你需要自己持久化,或者使用可持久化的会话来保存。使用会话放太多数据的话开销很大,不如自己持久化到磁盘。
huaxialonger 2011-10-21
  • 打赏
  • 举报
回复
不是吧,没有人遇到过吗?
大刘0417 2011-10-20
  • 打赏
  • 举报
回复
帮顶。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧