下面添加了更正:相关代码不是IIS 7应用程序(无应用程序池)的一部分。访问UNC路径时出现ASP.NET“访问被拒绝”错误
我有,包括用下面的代码aspx页的IIS虚拟目录:
System.Net.WebRequest wr = System.Net.WebRequest.Create(@"file://unc-share/directory/file.pdf");
wr.Credentials = System.Net.CredentialCache.DefaultCredentials;
WebResponse response = wr.GetResponse();
当的GetResponse()被调用时,我得到一个“拒绝访问路径“\ UNC共享\目录\ file.pdf'被拒绝。“错误。
我的应用程序配置为集成Windows身份验证(所有其他身份验证类型都被禁用),ASP.NET模拟已启用。
我已经能够验证ASP.NET模拟是否使用与我用来访问该站点的Windows域帐户相同的标识。 UNC共享文件所在的位置,这是一个独立的Windows系统,不托管Web服务器,该位置为该同一帐户设置了“完全控制”权限。
我也尝试使用FileStream实例访问文件,结果相同。
在这个网站和其他人的这个问题上一直在挖掘,但没有找到任何与我正在尝试做什么相匹配的建议,也没有找到解决问题的方法。
任何想法?
澄清:该文件可能是一个文本文件,但它通常不会是 - pdf,docx,各种其他非文本格式。此外,该文件位于远程系统上,可通过UNC路径访问。无论如何,我最终需要的是将流传递给不同的应用程序,而不是文件的内容。而且,即使使用文本文件,ReadAllText也会抛出相同的错误。 – Hoobajoob 2012-03-28 21:08:57
@hoobajoob,我以'ReadAllText'为例。例如,您可以将'ReadAllBytes'用于二进制文件或使用阅读器打开文件。我想这并不重要,因为你得到的是同样的错误。您是否可以通过在服务器中键入开始>运行对话框来访问UNC路径? – 2012-03-28 21:50:28
是的,我测试过的UNC路径可以从服务器访问。 – Hoobajoob 2012-03-28 22:07:41