我们的应用程序有一些全局变量和隐藏字段,就像任何其他 asp.net 应用程序一样。
我们对 Windows azure 云服务有疑问,因为 azure 有多个实例,所以如果 javascript 的全局变量在代码中间的某处被赋值。
如果由于负载平衡而发生实例转移,那么该全局变量是否会保持相同的值。
由于 JavaScript 是一种客户端技术(至少以您使用的形式),因此您必须使用一些服务器端代码填充您的 JS 变量。问题是您如何在服务器上存储填充 JS 变量的变量。如果它们存储在特定服务器中(使用静态变量或进程内会话变量),那么您肯定会遇到问题,因为它们在您角色的其他实例上不可用。
解决此问题的一种方法是将这些变量存储在某个位置(在分布式缓存、持久存储等中),可以在所有实例中访问它们。如果它们不包含任何敏感信息,您也可以将它们保存在 cookie 中。
此外,我们将大型 html 文本保存在服务器上的指定文件夹中,并在一段时间后根据用户选择检索相同的内容。(它是一个大型 PDF 文档)如果实例发生变化,这是否会产生问题。
哦耶!这肯定会给你带来问题。推荐的方法是将这些文件保存在 Blob 存储中,而不是 VM 的本地存储中。
windows azure 的负载平衡标准对我来说不是很清楚。如果有人能对此有所了解,我们将不胜感激。
简而言之,Windows Azure 云服务使用Round Robin Load Balancing
的方案基本上要求您从会话的角度让您的服务无状态。
如果您确实不需要 Windows Azure 云服务提供的所有功能,您可能需要查看 Windows Azure 网站。如果您所做的只是托管一个网站,那么 Windows Azure 网站可能是一个不错的选择。