什么时候重置应用程序对象?
When is Application object reset?
如果我在 Application 对象中放入一个字符串,它何时会被删除?
我想在其中缓存一个连接字符串,但如果我更新它,我将需要替换对象中的实例。
应用程序级变量非常适合存储 Web 应用程序配置信息。
它们能持续多久?
Application
变量在 Web 应用程序运行期间持续存在,这意味着只有停止 Web 应用程序才会重置它们。
列表中的所有内容都会导致 Application
对象重置。
- 手动停止 IIS 中的 Web 应用程序。
- 正在停止万维网发布服务。
- 正在重新启动 Web 服务器。
更新呢?
长寿的一个缺点是更新需要重新启动 Web 应用程序。幸运的是,尽管有解决方法。
会话数
使用 Web 应用程序根目录中的 global.asa
文件,我们可以利用 Session_OnStart()
事件触发 Application
变量的更新。
Sub Session_OnStart
'Make sure multiple sessions aren't trying to update the value of
'Application("ConnString") at the same time.
Application.Lock
Application("ConnString") = "..."
Application.Unlock
End Sub
使用脚本更新
如果 Session
不受欢迎,您可以手动调用更新。
Application.Lock
Application("ConnString") = "..."
Application.Unlock
如果我在 Application 对象中放入一个字符串,它何时会被删除?
我想在其中缓存一个连接字符串,但如果我更新它,我将需要替换对象中的实例。
应用程序级变量非常适合存储 Web 应用程序配置信息。
它们能持续多久?
Application
变量在 Web 应用程序运行期间持续存在,这意味着只有停止 Web 应用程序才会重置它们。
列表中的所有内容都会导致 Application
对象重置。
- 手动停止 IIS 中的 Web 应用程序。
- 正在停止万维网发布服务。
- 正在重新启动 Web 服务器。
更新呢?
长寿的一个缺点是更新需要重新启动 Web 应用程序。幸运的是,尽管有解决方法。
会话数
使用 Web 应用程序根目录中的 global.asa
文件,我们可以利用 Session_OnStart()
事件触发 Application
变量的更新。
Sub Session_OnStart
'Make sure multiple sessions aren't trying to update the value of
'Application("ConnString") at the same time.
Application.Lock
Application("ConnString") = "..."
Application.Unlock
End Sub
使用脚本更新
如果 Session
不受欢迎,您可以手动调用更新。
Application.Lock
Application("ConnString") = "..."
Application.Unlock