C# 在共享主机服务器中使用数据缓存和会话变量

C# 在共享主机服务器中使用数据缓存和会话变量,c#,asp.net,.net,asp.net-mvc,shared-hosting,C#,Asp.net,.net,Asp.net Mvc,Shared Hosting,我有一个疑问,在共享托管环境中使用大量数据缓存和会话变量是否是一种不好的做法?所谓共享托管,我指的是在内存更少的服务器上托管。因为当缓存变得足够大以至于耗尽内存时会发生什么 Gaurav这将在很大程度上取决于承载应用程序的服务器配置。首先,不要担心在共享主机上耗尽您的内存。在内存使用量增长超过预定义阈值之前,提供商将关闭应用程序 关于会话,有两件事要考虑。会话状态模式和应用程序运行的节点数。例如,如果您使用默认的内存会话状态并在多台服务器(webfarm)上运行应用程序,则每个节点的内存中将有自

我有一个疑问,在共享托管环境中使用大量数据缓存和会话变量是否是一种不好的做法?所谓共享托管,我指的是在内存更少的服务器上托管。因为当缓存变得足够大以至于耗尽内存时会发生什么


Gaurav

这将在很大程度上取决于承载应用程序的服务器配置。首先,不要担心在共享主机上耗尽您的内存。在内存使用量增长超过预定义阈值之前,提供商将关闭应用程序

关于会话,有两件事要考虑。会话状态模式和应用程序运行的节点数。例如,如果您使用默认的内存会话状态并在多台服务器(webfarm)上运行应用程序,则每个节点的内存中将有自己的会话数据。这是危险的,因为假设用户在节点A上执行第一个请求,一些数据存储在会话中,第二个请求由节点B提供服务。现在,由于会话存储在节点A的内存中,第二个请求将失败,因为它无法找到会话数据。在这种情况下,您应该考虑使用进程外会话存储模式。


就缓存而言,如果您想对其进行优化,建议使用专用缓存服务器,而不要将其存储在web服务器的内存中。

如果您对某些内容投了反对票,请提供一些这样做的理由,以便我在以后询问时牢记这一点。ThanksIt绝对不是一个好主意,如果您的内存不足,那么缓存大量数据。这和你问的一样,试着在一公升的瓶子里装满两公升的水是否好。有多少内存,有多少同时会话,每个会话有多少数据。你能在非活动状态下将会话持续15分钟以上吗?@edze:明白了,谢谢:)谢谢你的输入@darin。这真的很有帮助。