访问UNC路径的ASP.NET“访问被拒绝”错误

时间:2012-03-28 19:03:56

标签: asp.net windows authorization

下面添加了更正:有问题的代码不是IIS 7应用程序的一部分(没有应用程序池)。

我有一个IIS虚拟目录,其中包含一个带有以下代码的aspx页面:

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-share \ directory \ file.pdf'。”错误。

我为集成Windows身份验证配置了应用程序(禁用了所有其他身份验证类型),启用了ASP.NET模拟。

我已经能够验证ASP.NET模拟使用的身份与我用来访问该网站的Windows域帐户相同。文件所在的UNC共享(不是托管Web服务器的单独Windows系统)设置为该完全控制权限。

我也尝试使用FileStream实例访问该文件,结果相同。

在这个网站和其他网站上一直在探讨这个问题,但是没有找到任何符合我要做的建议,也没有找到解决问题的建议。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

访问这样的路径:

System.IO.File.ReadAllText(@"\\uncshare\directory\file.pdf");

此代码段的重要部分是路径的格式设置和WebRequest的缺失。您可以使用多种方法打开文件。我使用File.ReadAllText作为示例,但您可以使用FileStream轻松打开文件。

不应该使用WebRequest,因为该文件不在Web服务器之后。