我的网站里有很多公用资源,例如城市列表。我目前是写在另一个程序集的静态类里面,由静态构造函数进行初始化。但是如果一段时间没人访问网站,Application会被IIS回收掉,恕我基础较差,不知道这个静态类里面的资源会不会同时被回收?另外,这些公用资源有些是依赖于网站的,一定要保证网站可用后才可以初始化数据,我怎么才能知道网站已经可用?
解决方案 »
- .net2.0 模拟提交后如何获取返回的json数据
- asp.net怎么样来做防盗链
- 带中括号的东西都不能用了
- 脚本windows.open弹出窗口丢失session怎么解决???
- 关于.net中弹出confirm对话框问题 - 在线
- 请问怎样把一些文件编译成dll文件?哪些文件可以编译成dll文件?
- 一直想问,在ASP中用Session装用户信息,那在.NET中也是用Session吗?还是用Cache的?
- 谁有网络视频会议的开发经验。请指点一下思路。
- 把EXCEL数据导入到C程序中
- 如何在datagrid里实现把几列汇总成一个新列??
- MVC3 下关于 uploadify 的问题
- 如何实现鼠标离开文本框检查用户名是否存在呢?
1.看来必须在属性中提供懒加载的方式了,否则第一个访问网站的人就太郁闷了。另外,如果我在Application_End中提供序列化到文件的方式,在Application_Start中序列化回来,不知道这样好不好?2.其实这是由第一个问题来的,意思就是想问静态构造函数的调用顺序,例如:
A.Instance();
B.Instance();
A、B均包含静态构造函数,那么A的静态构造函数一定在B之前被调用吗?
不好意思,那我再问一下,如果我缓存CityInfo。现在有两种方式:
1.每个用户登录后会使用CityID去查询一个CityInfo,然后缓存到HttpApplication.Cache。
2.在类中维护一个静态字段CityInfoDictionary,在第一次引用的时候判断是否为空,为空就从数据加载整个CityInfo表(可能有400行,10列),然后每个用户都会访问这个静态字段,从Dictionary中读取数据。使用第一种方式,会造成对数据库的更频繁访问。但使用第二种方式,你说IIS会经常重启网站,那很可能CityInfoDictionary只被访问几次就需要重新加载。一句话就是一次查一条数据和一次查400条数据,时间差有多少?(包括执行计划、IO等步骤)我同时说几乎没有差距,只要CityInfoDictionary会被访问三次以上就值得加载整个表。