将网站从专用服务器移动到云服务器

时间:2016-06-21 06:07:05

标签: asp.net sql-server session cloud cloud-hosting

我们在专用服务器上托管的网站很少,如果我们决定将网站从专用服务器迁移到云服务器,那么从编程的角度来看我们应该考虑什么。我们所有的网站都是基于Asp.Net的&使用不同的会话变量并依赖于MS SQL Server标准2012数据库。

互联网上有很多可用的信息,其中一些令人困惑,甚至混淆是云环境的类型。服务提供的销售团队总是推动云计算但是当我们问这些问题时,没有明确的答案。

我在几年前遇到一个这样的问题与共享托管,其中一个网站在调查后发现共享托管是基于群组的共享托管,因此相同的用户会话由不同服务服务器中的服务器,如果第一个请求进入服务器1和服务器,会导致会话变量丢失。第二个请求转到服务器2.通过在web.config中添加机器密钥解决了此问题。

我不知道云服务器是如何工作的。我担心会话变量丢失,我可以通过使用基于SQL的会话状态来解决这个问题。

从注册配置或编程的角度来看,在注册基于云的Web服务器之前应该采取的其他精度是什么。

3 个答案:

答案 0 :(得分:1)

每当迁移到基于云的解决方案时,要记住的一个重要因素是“状态管理”。在云中,您正在考虑使用多个实例进行扩展,因此排除了进程状态管理,因为负载均衡器会将请求分发到不同的实例,并且存储在一个实例中的会话变量将不可用于另一个实例。因此,基于Sql db的proc选项是可选的。我一直在广泛使用Microsoft azure cloud。以及在azure中设置out of proc会话状态的选项是

  1. 基于SQL azure数据库的会话状态provider

  2. 基于Redis缓存的会话状态(redis缓存作为托管服务提供)link

  3. 基于会话状态provider

    的azure表存储

    一般来说,流程是可行的,您可以根据您选择的技术和云堆来决定实施。

答案 1 :(得分:1)

在云服务器上工作时,您需要了解的几点。

  1. 如果我们使用的是Alibaba云或任何其他云提供商的ECS等单一服务器,那么设置将与我们对物理服务器的设置相同。
  2. 如果我们使用阿里巴巴云等RDS等托管服务,则需要处理网络字符串(db url)。
  3. 如果我们在云上的负载均衡器后面使用多个服务器,例如Alicloud云上的SLB,则必须注意会话维护。建议使用集中式会话管理器,如Memcache。否则我们需要调整loadbalancer配置。
  4. 我的大多数参考文献都是来自Alicloud,因为我已经开始研究它,所以请耐心等待。您还可以查看他们的网络托管包

答案 2 :(得分:0)

我最近做了同样的研究。我同意@Aravind认为外部存储库是最安全/最好的方式;但是,Azure使用的负载均衡器(ARR)默认启用持久性。检查您的cookie,您将看到ARRAffinity cookie。这意味着客户端将始终转到相同的实例,从而允许在一定程度上使用InProc会话。

同样,外部回购是最好的,但是如果你需要快速起床,或者不需要太多努力,那就有可能。

更新:您现在可以在网络应用的设置中打开和关闭ARR亲和力 enter image description here