我有一个asp.net项目,它是数据库的前端。除了大表之外,数据库还包含一些小表,以帮助用公共值规范化大表。我有一个vb.net项目,它使用“shared”(即c_中的“static”)成员变量将较小的表加载到内存中,并使用它们。我要在global.asax-application\u start中加载表。这有效一段时间。也就是说,application_start在我第一次运行项目时运行,加载缓存的值,并将它们正确地保存在内存中一段时间。
我看到的(通过本地托管的visual studio 2008调试器运行项目时)是:
a)应用程序启动代码将运行多次。不是在一行中,但是在用户导航到其他一些页面之后,我将看到(我的断点)另一个初始化缓存的调用,来自application_start。是预期的吗?
b)当缓存初始化时设置为true的“shared”变量现在再次为false(这只应在类首次加载时发生)。同样,所有被篡改的数据也不再存在。也就是说,看起来vb正在卸载所有共享成员。这是预期的吗?
如果这些都是预期的行为,有没有办法做我想做的?代码位于一个模块中,该模块也被其他(非asp.net)项目使用,并且似乎对它们工作正常。我宁愿不必为特定于asp.net的东西复制此功能,但我想知道我的选项是什么。谢谢你的建议。