我正在将现有网站移至Azure。在azure webrole我有
1.默认端口的网站和
2.在另一个港口的服务可以说:8000
现在我的网站创建了一些动态页面,并且要求使用新URL更新sitemap.xml。在开发阶段,我可以从服务创建和更新sitemap.xml文件。但这在登台服务器上是不可能的。
我无法理解为什么会这样。可以告诉我一个解决方案,我可以在服务的网站根文件夹中创建一个sitemap.xml文件吗?
答案 0 :(得分:1)
我会说你有比sitemap.xml本身更大的问题!
在Azure WebRole中工作时,您拥有非持久性存储。这是我们为云的可扩展性/弹性/弹性付出的代价。这意味着如果代码运行的硬件(裸机)出现问题,Azure将在新的金属片上实例化一个新的,并将部署原始包。此时,所有动态生成的页面都将丢失,因为它们不是原始包的一部分。
对于您的网站从用户上传/等生成/接受的所有内容,您必须使用Azure Blob storage来保留。在blob存储中获得动态内容后,您可以选择将其交付给最终用户:
现在您可能已经猜到了 - 让Sitemap.xml始终保持最新的最佳方法是再次使用ASP.NET Handler来动态生成其内容。当然使用某种缓存(甚至可能是blob)以避免在每次请求Sitemap.xml时都出现昂贵的调用和对象图。