我有一行代码判断目录是否存在,然后获取其中的文件列表.
System.IO.Directory.Exists(@"\\Server\Folder\");
我在测试它(从VisualStudio运行)时可以工作,但在部署网站时,它总是返回false.
我对另一个服务器(假设是Server2)上的另一个文件夹执行了相同的验证,它工作得很好.
然后我认为这是一个访问问题,但共享文件夹和网络可以访问所有人...有没有其他原因导致它不起作用?
我有一行代码判断目录是否存在,然后获取其中的文件列表.
System.IO.Directory.Exists(@"\\Server\Folder\");
我在测试它(从VisualStudio运行)时可以工作,但在部署网站时,它总是返回false.
我对另一个服务器(假设是Server2)上的另一个文件夹执行了相同的验证,它工作得很好.
然后我认为这是一个访问问题,但共享文件夹和网络可以访问所有人...有没有其他原因导致它不起作用?
在Visual Studio中运行代码时,它将在用户权限下运行.
当您在IIS中运行代码时,它以应用程序池的标识运行,该应用程序池在默认情况下是内置用户"网络服务",这是一个本地用户帐户,在本地计算机之外无权访问.
网络共享上的权限是第一层,然后判断目录上的NTFS权限.
您需要将应用程序池的标识更改为与您的用户具有相同权限的域用户.