我的ASP.NET会话太大了吗?

时间:2009-06-10 16:38:19

标签: .net asp.net session

在我们的.NET Web应用程序中,每个登录用户都有一个大约5-7千字节的会话对象。会话存储一个Dictionary对象,该对象包含几个类和用户的身份验证令牌。这个会话规模看起来太大了吗?我真的不知道什么是好的尺寸或者我应该遵循什么样的良好做法。你们有没有想法?感谢

5 个答案:

答案 0 :(得分:2)

只在会议中放入绝对必要的内容。否则,使用您在会话中存储的ID来缓存它或从其他地方检索它。如果它可以去其他地方,那么它可能需要去的地方而不是你的会话对象。

答案 1 :(得分:2)

TheTXI和DevelopingChris提供了最佳实践,但这里是您的标题问题的最终答案:只有您可以判断您的会话是否太大。如果您没有遇到Web服务器上的内存使用问题(或者Web和状态服务器之间的流量,如果您使用外部状态服务器),则会话不会存储太多;如果你是,那就是。

最佳实践当然可以帮助您解决问题,并减少问题发生的可能性,但如果您所拥有的内容没有被破坏,您可能会更好地将有价值的开发能源用于部分代码上影响您的用户或您的可维护性。

答案 2 :(得分:1)

一般行业标准是将其降低到尽可能低,缓存对象,并将ID存储在会话中以便在下次请求时检索它们。

在asp.net中,运行多盒应用程序并且必须在数据库中存储会话,然后将其反序列化为对象时存在问题。

如果你最终以这种方式运行,那么必须为xml命中数据库然后反序列化它而不是点击记录本身。

答案 3 :(得分:1)

这取决于您的可扩展性要求。 5-7K * 1000个并发会话= 57 MB。假设你有相当数量的RAM,你应该没问题。也就是说,您应该非常小心会话中存储的内容,并避免存储非绝对必要的内容。

答案 4 :(得分:0)

如果您需要,请不要。您应该逐步浏览它,看看您可以更多地访问缓存或留在数据库中。