C# asp net:File Exists对于UNC路径返回false,但不返回';当通过本地主机访问时
我有一个网站,它使用集成的Windows身份验证请求用户通过IIS 6访问。然后,该网页的一个部分使用以下方法测试文件是否存在:C# asp net:File Exists对于UNC路径返回false,但不返回';当通过本地主机访问时,c#,asp.net,C#,Asp.net,我有一个网站,它使用集成的Windows身份验证请求用户通过IIS 6访问。然后,该网页的一个部分使用以下方法测试文件是否存在: File.Exists(sourcePath) 其中,sourcePath是用户应该能够访问的UNC。目前我的问题是,虽然用户可以在网站之外访问此UNC路径,但我得到了一个错误的结果 奇怪的是,如果我使用 http://localhost/Site http://[machine name]/Site 在托管网站的服务器上,但如果使用 http://loca
File.Exists(sourcePath)
其中,sourcePath是用户应该能够访问的UNC。目前我的问题是,虽然用户可以在网站之外访问此UNC路径,但我得到了一个错误的结果
奇怪的是,如果我使用
http://localhost/Site
http://[machine name]/Site
在托管网站的服务器上,但如果使用
http://localhost/Site
http://[machine name]/Site
这感觉像是权限问题,但很难确定原因
额外详情:
- UNC路径位于NAS服务器上
- web配置具有身份模拟=“true”
- 已尝试为具有应用程序池中UNC访问权限的用户添加用户配置。问题没有变化
- 这听起来像是Kerberos的问题。我猜应用程序池运行时没有正确的标识。您需要确保在模拟UNC路径的标识时显式设置用户名和密码,如下所示:
<identity impersonate="true" userName="accountname" password="password" />
您的源路径是什么样子的?当然没有给我们任何敏感信息<代码>http://localhost/Site和http://[machine name]/Site
不是UNC路径。@McCee示例sourcePath类似于\\[NAS服务器]\share\directory\Example.pdfWhen设置identity impersonate=“true”
时,是否提供特定的登录帐户?i、 e.
@McCee不,我不是。当我添加用户名/密码时,文件.Exists test works.极好。为了子孙后代,我将把这个问题转移到答案上,然后请将这个问题标记为已回答