windows azure云服务中的全局变量

时间:2013-10-22 05:50:35

标签: javascript asp.net azure cloud azure-sql-database

我们的应用程序有一些全局变量和隐藏字段,就像任何其他asp.net应用程序一样。

我们对Windows azure云服务有疑问,因为azure有多个实例,所以如果javascript的全局变量在代码中间某处被赋值。

如果由于负载平衡而导致实例转换,那么该全局变量将保持相同的值。

此外,我们在服务器上保存指定文件夹中的大型html文本,并根据用户选择在一段时间后检索相同内容。(它是一个大型PDF文档) 如果实例发生转变,这会产生问题。

windows azure的负载平衡标准对我来说并不是那么清楚。如果有人能够对此有所了解,我们将非常感激。

我们倾向于创建4个实例。

1 个答案:

答案 0 :(得分:2)

  

我们的应用程序有一些全局变量和隐藏字段,如any   其他asp.net应用程序。

     

我们对Windows azure云服务表示怀疑   azure有多个实例,所以如果javascript的全局变量是   在代码中途的某处分配了一个值。

     

如果存在,则该全局变量将保持相同的值   由于负载平衡导致实例转移。

由于JavaScript是客户端技术(至少以您使用的形式),因此必须使用某些服务器端代码填充JS变量。问题是如何存储在服务器上填充JS变量的变量。如果它们存储在特定的服务器中(使用静态变量或进程内会话变量),那么您肯定会遇到问题,因为它们在您的角色的其他实例中不可用。

解决此问题的一种方法是将这些变量存储在某个位置(在分布式缓存,持久存储等中),在这些位置可以跨所有实例访问它们。如果它们不包含任何敏感信息,您也可以将它们保存在cookie中。

  

我们还在服务器上保存指定文件夹中的大型html文本   并根据用户选择在一段时间后检索相同的内容   一个大的PDF文档)这会在实例中产生问题   移。

OH YEAH!这肯定会给你带来麻烦。建议的方法是将这些文件保存在blob存储中,而不是VM的本地存储中。

  

windows azure的负载平衡标准不太清楚   对我来说。如果有人可以对此有所了解,我们会非常   感谢。

简而言之,Windows Azure云服务使用Round Robin Load Balancing方案,这实际上要求您从会话角度使您的服务无状态。

如果您确实不需要Windows Azure云服务提供的所有功能,则可能需要查看Windows Azure网站。如果您所做的只是托管网站,那么Windows Azure网站可能不是一个糟糕的选择。