访问 ASP.NET Web 应用程序中的文件 write.lock 编写 Lucene 搜索索引

Access to file write.lock in ASP.NET web application writing a Lucene search index

我创建了一个 ASP.NET 应用程序,它使用 Lucene 来搜索我的网页。在本地,一切正常,但是当我将它部署到 IIS 服务器时,在创建索引期间生成 write.lock 文件的代码出现以下错误: 访问路径 'C:\inetpub\wwwroot\GcsWeb\OnlineHelp\write.lock' 被拒绝。

我确定这与 Web 应用程序所在的帐户 运行 没有权限将文件写入 Web 应用程序文件夹有关。

我该如何解决这个问题?文件本身没有被创建,所以我不能右键单击它并设置安全权限。它与这样一个事实有关,也许它需要权限才能写入文件,对吗?如果是,那我该怎么做?不熟悉 IIS 安全性。在 Windows Server 2012 R2 上使用 IIS 8.5 版。

检查用户身份 运行 IIS 应用程序(通常是 NETWORK SERVICE)并确保用户对适用的文件夹具有适当的权限。

您需要从网站的应用程序池中找出它 运行 下的身份是什么(默认情况下这是应用程序池身份)并授予正确的权限。

您可以试试这个设置:

IIS > Application Pools > [your site] > Advanced Settings > Identity > Built-in accound > LocalSystem