在MVC Web应用程序的共享文件夹上拒绝访问

我有一个MVC Web应用程序,它使用模板.xlt和.rpt生成Excel和PDF报告(使用Crystal),当我将模板放入Web服务器本身时,它会生成没有小故障的报告,但是一旦将模板放置在远程地点,然后我得到一个访问被拒绝的错误,我通过过程监视器发现,下面的屏幕截图

在这里输入图像说明

当我从服务器通过资源pipe理器手动浏览远程文件夹,它的一切正常,我可以打开我所需要的文件,只是当它的服务器读取文件时触发访问被拒绝的错误。 我的Web应用程序正在使用Integrated Pipeline中的ApplicationPoolIdentity。 身份validation是通过模拟和Windows身份validation。 甚至令人困惑的是,运行Excel模板的用户是我自己的,但我得到的访问被拒绝,而用于生成PDF的用户是IIS Apppool。

有谁知道如何解决访问被拒绝的问题,我已经尝试把所有用户完全访问该文件夹,但仍然无法正常工作。

附加信息

我正在使用IIS 7.5,我也检查了共享的文件服务器,在用户注册的事件日志不是我,但有以下细节

An account was successfully logged on. Subject: Security ID: NULL SID Account Name: - Account Domain: - Logon ID: 0x0 Logon Type: 3 New Logon: Security ID: ANONYMOUS LOGON Account Name: ANONYMOUS LOGON Account Domain: NT AUTHORITY Logon ID: 0x90eb7c7 Logon GUID: {00000000-0000-0000-0000-000000000000} Process Information: Process ID: 0x0 Process Name: - Network Information: Workstation Name: MYWEBSERVER Source Network Address: 10.10.10.01 Source Port: 00000 Detailed Authentication Information: Logon Process: NtLmSsp Authentication Package: NTLM Transited Services: - Package Name (NTLM only): NTLM V1 Key Length: 128 

UPDATE

我需要在这个实例中使用ApplicationPoolIdentity,所以我正在寻找一个仍然可以使用ApplicationPoolIdentity的解决scheme。

另一个更新

我试过下面的@Davidsbuild议,现在我得到相同的错误信息

System.Runtime.InteropServices.COMException(0x800A03EC):Microsoft Excel不能访问文件'\ MyServer \ Templates \ MyTemplate.xlt'。 有几个可能的原因:

?文件名或path不存在。 •该文件正在被另一个程序使用。 ?试图保存的工作簿与当前打开的工作簿具有相同的名称。 在Microsoft.Office.Interop.Excel.Workbooks.Open(string文件名,对象更新链接,对象ReadOnly,对象格式,对象密码,对象WriteResPassword,对象IgnoreReadOnlyRecommended,对象源,对象分隔符,对象可编辑,对象通知,对象转换器,对象AddToMru,Object Local,Object CorruptLoad)在Ci.Infrastructure.Reporting.ReportProviderExcel.RunReport()

我相信您的问题是因为应用程序池需要configuration为以域帐户或networking服务帐户运行。

如果您select后者,您需要授予'<domainname>\<machinename>$'权限,如果您select以特定帐户运行,那么这是您需要授予权限的用户。

您已经授予每个人访问权限,所以应该只是更改应用程序池用户的情况,但是一旦您拥有了它,我build议您将其限制为特定的帐户。

以下链接将为您提供更多信息:

http://www.iis.net/learn/manage/configuring-security/application-pool-identities