[英]Need to save block of data in ASP.NET between page refreshes in web farm without using inprpc or state server
我有一个运行在服务器场中的asp.net应用程序。 因此,过程中会话已结束。 没有状态服务器。 有一个sql server数据库(不能用于状态服务器)。 没有强制相同的Web服务器服务功能,因此无法保证哪个Web服务器将服务下一页。
我需要在页面之间保存一个数据块(大对象状态)。 我不想使用viewstate,因为数据可能很大,并且不希望它遍历整个网络。 我可以使用数据库来保存数据,并在视图状态下跨线使用记录ID,并检索下一页的数据。
有更好的解决方案吗?
我可以使用数据库来保存数据,并在视图状态下跨线使用记录ID,并检索下一页的数据。
您已经消除了所有其他选择。
好吧,我想您已经排除了大多数选择。 假设您无法安装其他服务,那么我想到了另外两种可能性:
与在SQL Server版本中一样,不要忘记以某种方式清理数据。 选项1在这方面与SQL Server非常相似,但是对于SQL Server来说,它可能仅仅是集中式清理作业,在文件共享的情况下,问题变为:哪台服务器是中心?
*)当然,您可以尝试从ASP.NET生成辅助进程。 这里的问题变成了:如果该过程有问题怎么办? 默认情况下,它对于您的系统管理员是不可管理的,除非您将其设置为可管理。
我不确定我是否阅读正确,但是您不能使用数据库存储asp.net会话吗?
<sessionState
mode="SQLServer"
sqlConnectionString="somedb"
cookieless="AutoDetect"
timeout="20"
/>
您还可以使用某种分布式缓存解决方案,例如memcached(http://www.danga.com/memcached/) ,它可以在回发之间保留数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.