关于开发asp服务器组件,数据内存共享的问题(100分)

  • 主题发起人 主题发起人 j2me
  • 开始时间 开始时间
J

j2me

Unregistered / Unconfirmed
GUEST, unregistred user!
由于在控件中用到了文件数据,但是这个文件的数据很少变化,我希望在第一次使用这个控件时,将数据调入内存。以后每次使用时,都直接在内存中存取数据。
如果我要刷新数据,只要调用函数重新调用数据。
我打算用CreateFileMapping 内存映射文件的方式来实现(内存映射存在则用OpenFileMapping)。但是每次使用该控件时,总是不停的调用文件。(我并没有释放CreateFileMapping的句柄)
请问我这样实现可以吗? 为什么会出现每次都调用文件,没有进行数据缓存呢?
哪位如果有其他的好办法请指教!
 
如果你的组件只是一个简单的COM组件,那么在每次被ASP的调用的时候,COM组件都会被加载,调用完成后,如果你只有一个客户端进行访问,此时组件对象的引用计数变为0,就会自动释放,所以出现缓存不了的情况。
你试者把组件安装到COM+环境看看,在这种情况下,会由dllhost.exe代理调用组件,只到空闲时间达到预设值时组件对象才会被释放(而不是一到引用计数变为0时就释放)。
你先试试看吧……如果还不行的话,可能就要手工做很多工作了,或者,改变设计思路,退而求其次。
 
看来只好用asp中的APPLICATION对象了.
 
后退
顶部