2017-07-16 78 views
4

我们使用Lucene.Net实现了搜索,索引存储在Azure存储文件夹中,几天前我们将Web应用程序从Azure CloudService迁移到Azure AppService。 如果我们运行这个本地它能正常工作,也能在CloudService但是,当我们发表我们的Web应用程序天青AppService服务 我们有以下异常:使用Lucene.Net和Azure App Service无法访问Azure存储

System.UnauthorizedAccessException:对路径“d:\ AzureDirectory ' 被拒绝。

试图更新AzureDirectory和Azure存储包,但它不起作用。

任何想法?

+0

以前的指标均在云服务或Azure存储? –

+0

在Azure存储中,我们只将Web应用程序移至appservice。 –

回答

4

感谢, 解决方案是改变Lucene.Net.Store.Azure.AzureDirectory小号CacheDirectory路径D:/Home/AzureDirectory

AzureDirectory(cloudStorageAccount, containerName, FSDirectory.Open(new DirectoryInfo("D:/Home/AzureDirectory"))) 

至于你提到我没有d:\访问

1

您没有d:\访问权限。在Web应用程序中,您的应用程序的使用寿命为d:\home(更准确地说d:\home\site)。

另外 - fyi这不是“Azure存储” - 该术语是指blob存储。

2

尝试更新AzureDirectory

正如David Makogon提到,在Azure中Web应用程序,我们没有获得创建或访问d:\ AzureDirectory文件夹。我们可以从Azure WebApp Sandbox获得更多信息。以下是该文档的片段

文件系统限制/注意事项

应用程序在自己的文件系统的访问权限方面高度受限。

访问主目录(d:\家庭)

每Azure的Web App有/存储在主目录由Azure存储支持。这个网络共享是应用程序存储其内容的地方。该目录可用于具有读/写访问权限的沙箱。

根据你所提到的例外,它似乎有些代码要访问的文件夹d:\ AzureDirectory,但它不是在Azure的Web应用程序的存在。我们还可以远程调试Azure中的WebApp以查找相关代码,更多详细信息请参阅Remote debugging web apps