C# 如何在基于asp.net webform的网站中处理云托管的会话管理

C# 如何在基于asp.net webform的网站中处理云托管的会话管理,c#,asp.net,asp.net-mvc,webforms,cloud-hosting,C#,Asp.net,Asp.net Mvc,Webforms,Cloud Hosting,假设我有一个在.net 4.0框架下用asp.net webforms开发的网站,这需要迁移到云托管,比如rackhosting 该网站目前使用asp.net默认成员身份进行用户管理,并使用多个会话变量存储临时变量 本网站托管在内部托管的专用服务器上 所以我的问题是 如何让它在云主机上工作 一种方法是使用基于MS Sql Server的会话管理 我还需要考虑什么才能让它在云主机上工作 我没有云托管的经验,因为人们会对服务提供商提供的云托管架构感到困惑。微软Azure、亚马逊等 任何指向好文章

假设我有一个在.net 4.0框架下用asp.net webforms开发的网站,这需要迁移到云托管,比如
rackhosting

该网站目前使用asp.net默认成员身份进行用户管理,并使用多个会话变量存储临时变量

本网站托管在内部托管的专用服务器上

所以我的问题是

  • 如何让它在云主机上工作
  • 一种方法是使用基于MS Sql Server的会话管理
  • 我还需要考虑什么才能让它在云主机上工作
我没有云托管的经验,因为人们会对服务提供商提供的云托管架构感到困惑。微软Azure、亚马逊等


任何指向好文章和代码示例的指针都可以从

开始,您需要使用跨服务器的会话状态提供程序。
e、 g.使用(或其他缓存提供程序)或

共享会话的用户有两个选项:
1.粘性会话,最容易实现,因为代码中没有要做的更改,但您将无法自动缩放(根据负载添加或减少机器数量)。这只是负载平衡器上的一个设置,因此您需要检查云提供商的负载平衡器是否具有此设置


2.进程外会话,在此我建议使用ASP.NET Redis会话提供程序(由Microsoft支持)。AWS和Azure都将Redis作为一种服务提供,因此很容易开始,您不需要考虑它的管理。最重要的out-of-proc将意味着一些代码更改,至少将会话中的类标记为可序列化,但您将能够自动缩放。

您将使用多台服务器吗?i、 e您是否需要跨不同服务器的会话状态?是的,我需要跨服务器的会话。。。假设上传后我将图像值存储在会话中,如果此时另一台服务器处理了保存请求,则会话将为null。我记得我在服务器场上遇到过这个问题,在共享主机上,当我试图保存存储在会话变量中的会话值时,我的会话一直为null。这种情况下的问题通过添加机器密钥得到解决,这样每个用户会话将始终由该服务器处理。但我不确定它在云上是如何工作的。。