我正在尝试将静态 .html 页面用于遇到大量流量峰值的网站。该网站是一个MVC3应用程序。静态 .html 页面的目录结构如下:
approot
|---content
index.html
|---staticpages
page1.html
page2.html
page3.html
我已将 defaultDocument 设置web.config为"content/index.html". 如果我只是在项目中包含 .html 文件并部署应用程序,它运行良好。
我们要做的是将所有的 html 文件作为 blob 放入存储容器中。后台任务(在 WebRole 中运行)会定期检查任何更新的文件。后台任务还会在服务器启动时检查 .html 文件是否存在或是否需要更新。理想情况下,我们宁愿不必在项目中包含 .html 文件,而是在服务器启动时从存储中获取它们。
后台任务拉下文件并将它们放在正确的目录中就好了。但是,当尝试访问 www.mysite.com 上的网站时,IIS 会返回403错误。如果我们尝试访问任何其他 .html 页面,我们会收到404错误消息。MVC在本地开发环境中测试应用程序时不会发生这种情况。
当我在 中打开目录浏览时IIS,在获取站点目录时不会出现任何文件或目录。再次使用像 www.mysite.com 这样的域。
如果我确实在webrole项目中包含了 .html 文件,然后尝试在存储中更新一个文件,blob则会从存储中提取IIS该文件,但会提供旧页面。我已删除浏览器缓存以确保这不是问题。新文件正在服务器上正确更新。我已经将它复制到我的本地机器并查看了它,它确实是更新版本。
因此,从我目前可以推断的情况来看,似乎Azure caches整个网站都已部署并且似乎不允许更改内容。
有没有办法强制Azure识别更改,或者每当静态 .html 页面发生更改时我们将被迫重新部署?