File 在Azure中创建和提供临时HTML文件

File 在Azure中创建和提供临时HTML文件,file,azure,roles,instances,temp,File,Azure,Roles,Instances,Temp,我们有一个应用程序,我们想迁移到Azure进行扩展。然而,在开始之前,有一个地方让我担心: 我们有一个用户直接访问的网页。页面上的代码将输出到数据库并生成HTML报告。新的HTML文档与一组图表和其他图像一起放在一个临时文件中。然后将用户重定向到此新页面 在Azure中,由于多种原因,我们永远无法确定用户是否会被定向到同一台机器:Azure负载平衡器可能会根据容量将用户推到不同的机器上,或者机器可能因为问题或其他原因而被取消配置 因为这些只是经常被创建和删除的临时文件,所以我最希望将我的应用程序

我们有一个应用程序,我们想迁移到Azure进行扩展。然而,在开始之前,有一个地方让我担心:

我们有一个用户直接访问的网页。页面上的代码将输出到数据库并生成HTML报告。新的HTML文档与一组图表和其他图像一起放在一个临时文件中。然后将用户重定向到此新页面

在Azure中,由于多种原因,我们永远无法确定用户是否会被定向到同一台机器:Azure负载平衡器可能会根据容量将用户推到不同的机器上,或者机器可能因为问题或其他原因而被取消配置

因为这些只是经常被创建和删除的临时文件,所以我最希望将我的应用程序的临时目录指向所有web角色都具有读/写访问权限的某种共享驱动器,然后能够将URL映射到此共享驱动器。可能吗?还是会比我想象的更复杂

我仍然可以让每个实例写入自己的本地临时目录。只需要一两秒钟就可以给它们喂食,所以我可以冒着在那一微秒内该实例是否下降的风险。这方面的问题是,对临时HTML文件的重定向是否将使用http 1.1并保持与该特定实例的连接

谢谢,
jasen

您可能想看两件事:

  • 使用支持某种分布式文件系统(基于blob存储)的Windows Azure网站。因此,您在Windows Azure网站中“本地”存储的文件将可从承载该网站的每个服务器(如果您使用多个实例)获得
  • 从Blob存储中提供文件。因此,不必在每个实例上本地保存HTML文件(或试图让用户坚持使用特定实例),只需将它们存储在Blob存储中,并在那里重定向您的使用
您可能想看两件事:

  • 使用支持某种分布式文件系统(基于blob存储)的Windows Azure网站。因此,您在Windows Azure网站中“本地”存储的文件将可从承载该网站的每个服务器(如果您使用多个实例)获得
  • 从Blob存储中提供文件。因此,不必在每个实例上本地保存HTML文件(或试图让用户坚持使用特定实例),只需将它们存储在Blob存储中,并在那里重定向您的使用
      来自@Sandrino的好东西。还有一些想法:

      • 将生成的html存储在角色缓存中(可以在web角色实例中并置),并从缓存中提供html(在所有实例中共享)
      • 利用CDN。您可以将“CDN”文件夹映射到实际的边缘缓存。因此,您只需在代码中生成一次html,然后缓存它,直到TTL到期,此时您必须再次生成内容

        • 来自@Sandrino的好东西。还有一些想法:

          • 将生成的html存储在角色缓存中(可以在web角色实例中并置),并从缓存中提供html(在所有实例中共享)
          • 利用CDN。您可以将“CDN”文件夹映射到实际的边缘缓存。因此,您只需在代码中生成一次html,然后缓存它,直到TTL到期,此时您必须再次生成内容

          我认为azure blob是存储可由多个实例访问的html文件的最佳位置。您可以将用户重定向到该blob内容,也可以编写自定义页面来呈现blob中的内容。

          我认为azure blob是存储可由多个实例访问的html文件的最佳位置。您可以将用户重定向到该blob内容,也可以编写自定义页面来呈现blob中的内容。

          我无法找到有关“Azure网站共享存储”的任何信息。我的印象是blob存储不适合大容量写入,这会导致创建这些临时文件。我真的需要在我所有的azure网站上使用某种共享网络驱动器。?Blob存储是azure的共享驱动器,你不能像其他Windows操作系统那样访问它。如果您要将用户重定向到blob存储中的HTML,我会考虑使用一个自定义域,但我无法在“Azure网站共享存储”中找到任何信息。我的印象是blob存储不适合大容量写入,这会导致创建这些临时文件。我真的需要在我所有的azure网站上使用某种共享网络驱动器。?Blob存储是azure的共享驱动器,你不能像其他Windows操作系统那样访问它。如果要将用户重定向到blob存储中的HTML,我会考虑使用自定义域Hi David,我不认为在分布式缓存中存储大量图像和HTML是正确的方法。。从技术上讲,它可能会起作用,但只是感觉不对。如果我可以访问所有Azure网站上的共享驱动器并将该共享驱动器映射到URL。。谢谢,太好了。嗨,大卫,我不认为在分布式缓存中存储大量的图像和html是正确的方法。。从技术上讲,它可能会起作用,但只是感觉不对。如果我可以访问所有Azure网站上的共享驱动器并将该共享驱动器映射到URL。。谢谢,那太好了。