无法使用Lucene.Net和Azure App Service访问Azure存储

时间:2017-07-16 21:05:29

标签: asp.net-mvc azure azure-storage lucene.net

我们使用Lucene.Net实现搜索,索引存储在Azure存储文件夹中,几天前我们将Web应用程序从Azure CloudService移动到Azure AppService。 如果我们在本地运行它,它按预期工作,也适用于CloudService但是当我们将Web应用程序发布到Azure AppService时 我们有以下例外:

  

System.UnauthorizedAccessException:拒绝访问路径'D:\ AzureDirectory'。

尝试更新AzureDirectory和Azure存储包,但它无法正常工作。

任何想法?

3 个答案:

答案 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存储。