授予IIS Web应用程序访问网络驱动器上的文件的权限

时间:2017-02-13 13:59:33

标签: c# asp.net .net iis application-pool

我使用C#和.NET开发了一个Intranet Web应用程序,使用Windows身份验证对用户进行身份验证

其中一个页面从存储在网络驱动器上的Excel文件中读取数据,并在屏幕上显示信息。要访问存储excel文件的网络驱动器区域,您需要成为某个活动目录组的成员。

当我在本地运行应用程序时,这工作正常,因为它将在我的登录ID下运行,该ID具有对网络驱动器的许可。

然而,当我在我们的网络服务器上转到应用程序的实时版本时,我得到了

  

System.UnauthorizedAccessException:访问路径   '\\ foo \ bar.xlsx'被拒绝。

我想这是因为IIS正在使用的用户没有网络驱动器的权限。

我已在IIS中设置应用程序池以使用ApplicationPoolIdentity我假设使用IIS_USRS但我如何将该权限授予网络驱动器?

如果我在IIS中更改应用程序池以使用具有权限的帐户(例如我的详细信息)而不是ApplicationPoolIdentity,则会收到以下错误:

  

服务不可用

     

HTTP错误503.该服务不可用。

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:0)

.xlsx文件有

  

应用/ vnd.openxmlformats-officedocument.spreadsheetml.sheet

mime类型。转到有问题的IIS,单击 mime types 按钮,然后在表格中检查是否有我所说的mime类型。

答案 1 :(得分:0)

我通过将服务器帐户添加到有权查看文件夹的活动目录组来修复我的问题。

答案 2 :(得分:0)

拒绝访问: 错误相同但场景不同。使用C#.NET通过System.DirectoryServices.AccountManagement访问Active Directory更改密码。我能够阅读,但是自然无法获得访问权限。这是因为该应用程序无权修改Active Directory。要解决此问题,我必须在web.config中添加一个具有Account Operator AD权限的帐户。以下是我需要添加的内容,以使其适合我们的情况。

<add key="adAdminUser" value="USERNAME"/>
<add key="adAdminPassword" value="PASSWORD"/>
<add key="adDomainFull" value="BLANK4US"/>