我正在尝试将静态 .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 页面发生更改时我们将被迫重新部署?