我有一个MVC Web应用程序,它使用模板.xlt和.rpt生成Excel和PDF报告(使用Crystal),当我将模板放入时,它会生成没有小故障的报告Web服务器本身,但一旦我把模板在远程位置然后我得到一个访问被拒绝错误,我发现通过过程监控,屏幕截图如下访问在MVC Web应用程序的共享文件夹上被拒绝
当我手动浏览远程文件夹通过从服务器的资源管理器它的一切正常,我可以打开我所需要的文件,只是在访问被拒绝时发生错误e服务器读取文件。我的Web应用程序正在使用Integrated Pipeline中的ApplicationPoolIdentity。身份验证是通过模拟和Windows身份验证。甚至令人困惑的是,运行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,所以我要寻找的是仍然可以使用ApplicationPoolIdent解决方案性。
另一个更新
我想下面@Davids建议,现在我得到同样的错误消息
System.Runtime.InteropServices.COMException(0x800A03EC):微软 Excel不能访问文件“ \ MyServer的\模板\ MyTemplate.xlt”。 有几种可能的原因:
?文件名或路径不存在。 •另一个程序正在使用该文件 。 ?试图保存的工作簿与当前打开的工作簿具有相同的 名称。在 Microsoft.Office.Interop.Excel.Workbooks.Open(字符串文件名,对象 UpdateLinks,只读对象,对象格式,对象口令,对象 WriteResPassword,对象IgnoreReadOnlyRecommended,对象产地, 对象分隔符,可编辑的对象,对象通知,目标转换器 对象AddToMru,对象本地,在 Ci.Infrastructure.Reporting.ReportProviderExcel.RunReport()
你为什么不尝试冷杉映射远程位置的驱动器和第一给正确的用户权限。如果它是.net,它通常使用“网络服务”权限。 – user1785999
如果我没有登录到Web服务器,它将不会映射到登录用户的上下文中,它将如何映射? – Raymund
你有一个域,以便您可以使用NETWORKSERVICE访问该文件夹:http://www.iis.net/learn/manage/configuring-security/application-pool-identities – AFD