DoI*_*oIt 0 c# asp.net iis arraylist asp.net-mvc-4
我开发了一个Asp.Net MVC Web应用程序并将其部署在IIS 8 Server上,在我的应用程序中,我使用一个列表来存储在线用户并使用以下代码在页面中显示它们
if (HttpRuntime.Cache["LoggedInUsers"] != null)
{
List<string> loggedInUsers = (List<string>)HttpRuntime.Cache["LoggedInUsers"];
if (loggedInUsers.Contains(model.UserName))
{
}
else
{
loggedInUsers.Add(model.UserName);
HttpRuntime.Cache["LoggedInUsers"] = loggedInUsers;
}
}
Run Code Online (Sandbox Code Playgroud)
出于某种原因,列表每晚都会被清除,当我查找活跃用户时,我看到它是空的.
是否必须在IIS 8上处理,或者有更好的方法来实现使用数据库表的在线用户可能是..
IIS可以回收您的应用程序池(出于多种原因,包括空闲和没有请求,内存使用过多等等).此时,您的应用程序将被卸载,然后再次加载.因此,您的缓存值已消失.
其次,您是否有任何代码在某些时候修剪并从缓存中删除旧条目?如果没有,这意味着你有内存泄漏,因为它将继续无限增长(从而触发应用程序池回收).
如果你确实有prunning代码(因此缓存被主动管理以避免无限增长),并且你需要它的内容在池重启后继续存在,那么你有几个选择:
| 归档时间: |
|
| 查看次数: |
153 次 |
| 最近记录: |