我需要在我当前正在进行的项目中实现多个应用程序级行为。
有几件事我需要弄清楚:
1. 在哪里以及如何定义应用程序级变量?
2. 这些变量的生命周期是多长?或者更准确地说,在什么情况下它们会被丢弃? (应用程序池回收?应用程序二进制文件从内存中删除并在下一个请求时重新编译?等等)
3. global.asax 文件是否是放置会话计数器的好地方,或者将值存储到数据库/文件中可能是保存此类数据的更好方法?
欢迎任何意见或想法。
谢谢你!
-埃拉德
应用程序级变量具有应用程序生命周期。这意味着如果应用程序池被回收,它们就会被丢弃。
应用程序池可以因不同的原因而被回收。可以配置 IIS 6/7,以便在一定时间、一定数量的请求或指定的时间间隔后回收应用程序池。
您可以这样设置应用程序变量:
Application["DbConfig"] = "my value";
但您必须注意如果您尝试在不同的地方设置/访问可能会遇到的问题。您必须采用一种方法来在变量更新时锁定它们。
我我们的web.config
对于所有配置参数,然后我创建了自己的类,用于存储应用程序字段:
namespace Web.My
{
public class Application
{
public static string ApplicationStorageFolder
{
get
{
return (System.IO.Path.Combine(HttpContext.Current.Server.MapPath("~"), "_AppStorage"));
}
}
}
}
如果我需要设置一些字段,我会在应用程序启动时进行设置Application_Start
如果您需要保留信息,您可以创建自己的配置文件(xml 或简单文本)来在应用程序启动和关闭时存储和读取值。您可以在 XML 文件中序列化您的类,以便您可以准备好它,轻松地重新填充您的属性。
一个 db 也可以。
我会对会话计数器做同样的事情。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)