Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.Net-会话限制_C#_Asp.net_Session - Fatal编程技术网

C# ASP.Net-会话限制

C# ASP.Net-会话限制,c#,asp.net,session,C#,Asp.net,Session,可能重复: 我正在构建一个asp.net c webforms应用程序。 我想知道您在会话处理中使用的最佳包装类是什么? 我们可以在会话中存储多少数据?限制是什么?你可能想看看这篇文章- 至于包装器类,实际上不需要做很多事情。我通常认为最好只有一个类访问会话。我通常使用静态属性来检索我想要的对象 public static class MyData { public static MyObject Item1 { get { return HttpContext.Cu

可能重复:

我正在构建一个asp.net c webforms应用程序。 我想知道您在会话处理中使用的最佳包装类是什么?
我们可以在会话中存储多少数据?限制是什么?

你可能想看看这篇文章-

至于包装器类,实际上不需要做很多事情。我通常认为最好只有一个类访问会话。我通常使用静态属性来检索我想要的对象

public static class MyData
{
    public static MyObject Item1 { 
        get { return HttpContext.Current.Session["DataKey"] as MyObject;}
        set { HttpContext.Current.Session["DataKey"] = value;}
    }
}

显然,您可以根据需要修改模式以自动构建对象

你可能想看看这篇文章-

至于包装器类,实际上不需要做很多事情。我通常认为最好只有一个类访问会话。我通常使用静态属性来检索我想要的对象

public static class MyData
{
    public static MyObject Item1 { 
        get { return HttpContext.Current.Session["DataKey"] as MyObject;}
        set { HttpContext.Current.Session["DataKey"] = value;}
    }
}

显然,您可以根据需要修改模式以自动构建对象

在会话中存储大量数据时要非常小心。请记住,只要该人员的会话处于活动状态,会话就会持续。您可能有一台每秒可以处理200个请求的服务器,但您可能有15000人同时为其维护会话。假设您正在为会话使用默认的服务器内存,您可能会很快发现服务器内存不足


这听起来很奇怪,但为了提高可伸缩性,请仔细研究在cookie和/或数据库中存储内容。

在会话中存储大量数据时要非常小心。请记住,只要该人员的会话处于活动状态,会话就会持续。您可能有一台每秒可以处理200个请求的服务器,但您可能有15000人同时为其维护会话。假设您正在为会话使用默认的服务器内存,您可能会很快发现服务器内存不足


这听起来很奇怪,但为了提高可扩展性,请仔细考虑将内容存储在cookies或数据库中。

谢谢您的回答,peter。但我们有一个网站,将有很多权限设置,我想存储在会话时,用户登录这些设置。以后还可以添加更多权限。另一种方法是每次用户刷新页面时从db获得权限,但我不希望每次用户刷新页面时获得50多行。在这种情况下,你的建议是什么?你应该尽可能保持饼干的清淡,你所做的只是把问题推到其他地方。DB或进程外状态管理器是更好的选择。我完全理解您为什么要使用会话,而您可能没有其他选择。如果您确实使用了会话,请确保您已经对其进行了大规模测试。有几种选择比使用数据库会话提供程序快得多。有几种第三方解决方案,还有微软会话状态服务器velocity,我想它已经改名为AppFabric。正如Kev所说的,保持你的饼干的小气和清瘦。如果你能把你的角色定义塞进一个很小的空间,那就行了,否则,你就必须有一个服务器端的解决方案。只需确保你选择的东西是网络农场安全的。谢谢你的回答,彼得。但我们有一个网站,将有很多权限设置,我想存储在会话时,用户登录这些设置。以后还可以添加更多权限。另一种方法是每次用户刷新页面时从db获得权限,但我不希望每次用户刷新页面时获得50多行。在这种情况下,你的建议是什么?你应该尽可能保持饼干的清淡,你所做的只是把问题推到其他地方。DB或进程外状态管理器是更好的选择。我完全理解您为什么要使用会话,而您可能没有其他选择。如果您确实使用了会话,请确保您已经对其进行了大规模测试。有几种选择比使用数据库会话提供程序快得多。有几种第三方解决方案,还有微软会话状态服务器velocity,我想它已经改名为AppFabric。正如Kev所说的,保持你的饼干的小气和清瘦。如果你能把你的角色定义塞进一个很小的空间,那就行了,否则,你就必须有一个服务器端的解决方案。只要确保你选择的东西是webfarm安全的。