gpt4 book ai didi

asp.net - global.asax 范围和生命周期说明

转载 作者:行者123 更新时间:2023-12-02 00:33:41 24 4
gpt4 key购买 nike

我需要在我目前正在处理的项目中实现多个应用程序级行为。我需要了解几件事:1. 我在哪里以及如何定义应用程序级变量?2. 这些变量的生命周期是多少?或者更准确地说,它们在什么情况下被丢弃? (应用程序池回收?应用程序二进制文件从内存中删除并在下一个请求时重新编译?等)3. global.asax 文件是放置 session 计数器的好地方,还是将值存储到数据库/文件是持久保存此类数据的更好方法?

欢迎任何意见或想法。谢谢!-Elad

最佳答案

应用程序级变量有一个应用程序生命周期。这意味着应用程序池被回收,它们被丢弃。
可以出于不同原因回收应用程序池。 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 文件中序列化您的类,以便准备好它,轻松地重新填充您的属性。数据库也可以。我会对 session 计数器做同样的事情。

关于asp.net - global.asax 范围和生命周期说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5548601/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com