Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# asp net:File Exists对于UNC路径返回false,但不返回';当通过本地主机访问时_C#_Asp.net - Fatal编程技术网

C# asp net:File Exists对于UNC路径返回false,但不返回';当通过本地主机访问时

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

我有一个网站,它使用集成的Windows身份验证请求用户通过IIS 6访问。然后,该网页的一个部分使用以下方法测试文件是否存在:

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.极好。为了子孙后代,我将把这个问题转移到答案上,然后请将这个问题标记为已回答