我们使用Lucene.Net实现搜索,索引存储在Azure存储文件夹中,几天前我们将Web应用程序从Azure CloudService移动到Azure AppService。 如果我们在本地运行它,它按预期工作,也适用于CloudService但是当我们将Web应用程序发布到Azure AppService时 我们有以下例外:
System.UnauthorizedAccessException:拒绝访问路径'D:\ AzureDirectory'。
尝试更新AzureDirectory和Azure存储包,但它无法正常工作。
任何想法?
答案 0 :(得分:4)
谢谢,
解决方案是将Lucene.Net.Store.Azure.AzureDirectory
CacheDirectory
路径更改为D:/Home/AzureDirectory
AzureDirectory(cloudStorageAccount, containerName, FSDirectory.Open(new DirectoryInfo("D:/Home/AzureDirectory")))
正如您所说,我没有d:\
访问权限
答案 1 :(得分:2)
尝试更新AzureDirectory
正如David Makogon所说,在Azure WebApp中,我们无权创建或访问 D:\ AzureDirectory 文件夹。我们可以从Azure WebApp Sandbox获得更多信息。以下是文档的片段
文件系统限制/注意事项
应用程序在访问文件系统方面受到严格限制。
主目录访问(d:\ home)
每个Azure Web App都有一个由Azure Storage存储/支持的主目录。此网络共享是应用程序存储其内容的位置。此目录可用于具有读/写访问权限的沙箱。
根据您提到的例外情况,某些代码似乎想要访问 D:\ AzureDirectory 文件夹,但Azure WebApp中不存在该代码。我们还可以在Azure中远程调试我们的WebApp以查找相关代码,更多详细信息,请参阅Remote debugging web apps。
答案 2 :(得分:1)
您没有In []:
for a in func:
a()
Out[]:
0
1
2
3
4
访问权限。在网络应用程序中,您的应用程序位于d:\
下(更准确地说是d:\home
)。
另外 - fyi这不是“Azure存储” - 该术语指的是blob存储。