如何解决多实例Azure App服务上的System.UnauthorizedAccessException

问题描述 投票:0回答:1

我有一个由 Lucene .Net 创建的搜索 API。 我将其部署在 Azure 应用服务上,并设置了 2 个具有负载平衡的实例。 Lucene索引已经放在Blob Storage上,将通过API的后台服务更新。

2个实例独立有2个索引文件夹。 一切都运行良好。但有时更新索引文件夹时会出现

System.UnauthorizedAccessException

更新索引文件夹过程如下: 有主文件夹和从文件夹。当更新索引时,我的API将访问Slave文件夹来获取数据。当更新索引结束时,我的API将访问Master。

  1. 下载 Blob 存储上的索引
  2. 删除主/从文件夹并创建新文件夹
  3. 将索引文件提取到新的主/从文件夹中

我认为当请求API时,我们无法删除Master/Slave文件夹并创建新文件夹。 有人有这方面的经验吗

提前致谢。

azure azure-web-app-service azure-blob-storage lucene.net
1个回答
0
投票

作为您的解决方法:

使用 2 个不同的目录来保存当前数据和更新数据,只需在应用程序中在它们之间进行切换即可。基本上:

  1. 文件夹A处于活动状态,已使用且处于活动状态。从 B 文件夹中删除旧内容,将新索引上传到文件夹 B。
  2. 在 A - B 之间切换。现在文件夹 B 已上线。
  3. 可选择清理文件夹A

这样您就有更多的控制权,并且切换会立即发生,您没有任何等待时间。

© www.soinside.com 2019 - 2024. All rights reserved.