azure - 动态更新 Azure webrole 中的 sitemap.xml

标签 azure sitemap azure-web-roles

我正在将现有网站迁移到 Azure。在azure webrole中我有
1.默认端口的网站和
2.另一个端口的服务比如说:8000

现在我的网站创建了一些动态页面,要求是使用新的 URL 更新 sitemap.xml。在开发阶段,我可以从服务创建和更新 sitemap.xml 文件。但这在登台服务器上是不可能的。

我无法理解为什么会发生这种情况。任何人都可以告诉我一种解决方案,可以通过服务在网站的根文件夹中创建 sitemap.xml 文件吗?

最佳答案

我想说你遇到的问题比 sitemap.xml 本身大得多!

在 Azure WebRole 中工作时,您拥有非持久存储。这是我们为云的可扩展性/弹性/弹性付出的代价。这意味着,如果运行代码的硬件(裸机)发生问题,Azure 将在一 block 新金属上实例化一个新硬件,并部署您的原始包。此时,所有动态生成的页面都会丢失,因为它们不是原始包的一部分。

对于您的网站从用户上传等生成/接受的所有内容,您必须使用 Azure Blob storage坚持下去。将动态内容放入 Blob 存储后,您可以选择以下几种方式将其交付给最终用户:

  • ASP.NET 处理程序 (ashx),它将读取 blob 内容并将其重新流式传输(发送)给最终用户(我不会这样做);
  • 动态生成指向 Blob 存储中内容的适当链接。使用Shared Access Signature内容是否必须受到保护并且并非所有人都可以访问;
  • 使用custom VirtualPath provider使远程内容 (Azure Blob) 对于最终用户来说看起来像本地内容。

现在您可能已经猜到了 - 让 Sitemap.xml 始终保持最新的最佳方法是再次使用 ASP.NET 处理程序来动态生成其内容。当然,使用某种类型的缓存(甚至可能是 blob)来避免每次请求 Sitemap.xml 时昂贵的调用和对象图。

关于azure - 动态更新 Azure webrole 中的 sitemap.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19420758/

相关文章:

Azure AD B2C - GitHub 的自定义提供程序无法获取访问 token

azure - 机器人保护或添加验证码以注册 Azure AD B2C 体验

azure - 存储帐户生命周期策略管理需要哪些 Azure IAM 权限才能发挥作用?

seo - 通过 php 将 sitemap.xml 提交给谷歌

xml - 链接上的 namespace 前缀 xhtml 未定义 - sitemap.xml

node.js - 使用 Windows Azure Powershell 设置唯一的部署名称

caching - azure共享缓存和新的azure redis缓存有什么区别?

sql - 如何删除不需要的行值,然后根据 ADF/Azure SQL DB 中的键合并行?

xml - 如何正确格式化 xml 站点地图的上次修改 (lastmod) 时间

azure - 在 Azure Web 角色中自动安装应用程序初始化(SDK v1.8、Windows Server 2012)