我们的应用程序有一些全局变量和隐藏字段,就像任何其他asp.net应用程序一样。
我们对Windows azure云服务有疑问,因为azure有多个实例,所以如果javascript的全局变量在代码中间某处被赋值。
如果由于负载平衡而导致实例转换,那么该全局变量将保持相同的值。
此外,我们在服务器上保存指定文件夹中的大型html文本,并根据用户选择在一段时间后检索相同内容。(它是一个大型PDF文档) 如果实例发生转变,这会产生问题。
windows azure的负载平衡标准对我来说并不是那么清楚。如果有人能够对此有所了解,我们将非常感激。
我们倾向于创建4个实例。
答案 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网站可能不是一个糟糕的选择。