我正在完成一项由以前的开发人员启动的功能。我注意到他正在 Global.asax Application_Start 方法中从数据库加载设置,并将设置放入 HttpContext.Current.Application["SettingName"] 中。
在开发过程中,这在我的机器上运行良好。如果我没记错的话,虽然这看起来像在生产中,但当应用程序为第一个用户启动时,它将加载一次数据,但设置将不可用于任何后续用户的应用程序。
有人可以证实或否认我的怀疑吗?
最佳答案
HttpContext.Current.Application["SettingName"]
是静态属性。它也将可供下一个后续用户使用。但你不能那么容易地改变它,特别是如果你使用网络花园。
您可以在此处阅读更多详细信息:Using static variables instead of Application state in ASP.NET
我不知道设计是怎样的,但是您可以使用一个简单的静态字典来实现相同的...直接从数据库或 web.config 读取您的参数。
关于asp.net - 这个设计有bug吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26869325/